2016-04-22 50 views
0

爲什麼以下情況會返回Fri, 22 Apr 2016 13:01:00 GMT瞬間/時區 - 將日期轉換爲unix

是否應該爲Fri, 22 Apr 2016 17:01:00 GMT(爲時區添加4小時)?

var zone = "America/New_York"; 
var date = 'Fri, 22 Apr 2016 13:01'; 
$('#ts').text(moment.tz(date, zone).unix()); // 1461330060 
// epochconverter.com (1461330060) --> Fri, 22 Apr 2016 13:01:00 GMT ?!! 

jsfiddle

編輯:更新fiddle。如果我通過Fri, 22 Apr 2016 13:01它現在吐出Fri, 22 Apr 2016 12:01:00 GMT,所以它忽略任何UTC的預期的DST,但我仍然困惑爲什麼它不返回Fri, 22 Apr 2016 17:01:00 GMT

回答

0

我認爲問題是使用jsfiddle,它可能基於美國,所以時刻都在使用本地化。

我做了以下我的節點服務器(總部設在英國倫敦)上,當我的成績比較worldtimebuddy.com/est-to-utc-converter下面的代碼現在工作:

var unix = moment.tz('2016-04-22T15:00', "America/New_York").unix(); 
var zulu = moment.utc(unix, 'X').format(); 
var local= new Date(zulu).toString(); 

console.log(unix); // 1461351600 (epochconverter.com --> Fri, 22 Apr 2016 19:00:00 GMT) 
console.log(zulu); // 2016-04-22T19:00:00Z 
console.log(local); // Fri Apr 22 2016 20:00:00 GMT+0100 (GMT Daylight Time) 

總結,時代在現在正確轉換:

  • 紐約= 15:00
  • 祖魯/ UTC = 19:00
  • UK(DST)= 20:00
相關問題