簡體   English   中英

片刻/時區-將日期轉換為Unix

[英]Moment/Timezone - converting a date to unix

為什么以下代碼會返回Fri, 22 Apr 2016 13:01:00 GMT

應該不是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

編輯:更新小提琴 如果我在Fri, 22 Apr 2016 13:01通過,它現在會在Fri, 22 Apr 2016 12:01:00 GMT離開,因此它會忽略UTC預期的任何夏令時,但我仍然感到困惑,為什么它不返回Fri, 22 Apr 2016 17:01:00 GMT

我認為問題是使用可能位於美國的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
  • 英國(DST)= 20:00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM