2016-05-08 41 views
0

我是一名新開發人員,我一直堅持這一段時間,如何將以下日期轉換爲它的UTC版本(無需utc前綴/後綴)在JS ?moment js,將EST字符串轉換爲UTC

05/03/2016 16:00 

我想:

var b = "05/03/2016 16:00"; 
moment.utc(b).format(); 
"2016-05-03T16:00:00Z" 

我想最終的結果是完全按照B,但其UTC等價。我錯過了什麼?

回答

2

你缺少輸入格式輸出格式

  • 沒有輸入格式,您的日期可能會被解釋爲5月3日或3月5日,這取決於文化。

  • 沒有輸出格式,一刻也沒有辦法知道你想要什麼樣的字符串,所以它默認爲全ISO8601擴展格式。

您也錯過了轉換。如果輸入的是本地時間,你想UTC,那麼你應該用moment(...)解析它,然後將其與.utc()功能轉換爲UTC。

總結:

moment(b, 'MM/DD/YYYY HH:mm').utc().format('MM/DD/YYYY HH:mm') 

另外請注意,它是從哪裏運行代碼的轉換本地時間。在你問的問題中,你問過關於EST。如果您的當地時區是其他地方,那麼EST不適用於上述情況。您需要使用moment-timezone加載項來執行以下操作:

moment(b, 'MM/DD/YYYY HH:mm', 'America/New_York').utc().format('MM/DD/YYYY HH:mm') 
+0

@ devdropper87這個答案比較好,希望它有幫助 – Cameron637

1
moment(b).utc(); 

將其更改爲UTC時間,你仍然可能需要參數添加到格式(),以確保它顯示你最初寫的方式。

moment(b).utc().format("MM/DD/YYYY HH:mm"); 
+0

非常感謝! – devdropper87