簡體   English   中英

Momentjs utc()在本地(Mac)和服務器(Ubuntu)上的工作方式不同

[英]Momentjs utc() working differently on local (Mac) and server (Ubuntu)

試圖弄清楚這是實際的錯誤還是理解我的moment.js utc()方法的根本缺陷。

當該方法用於轉換現有的時間/日期字符串時,僅在Ubuntu上返回錯誤的結果

使用moment@2.22.2

在Ubuntu 16.04.4 LTS上

> moment().utc().format()
'2018-11-10T16:30:28Z'
> moment('2018-11-13 19:00:00').utc().format()
'2018-11-13T19:00:00Z'

在Mac OsX 10.13.2上

> moment().utc().format()
'2018-11-10T16:29:24Z'
> moment('2018-11-13 19:00:00').utc().format()
'2018-11-14T00:00:00Z'

Moment會將您的字符串解釋為本地時間。 您的Ubuntu機器的時區設置為UTC,因此它將UTC時間讀為“ 2018-11-13 19:00:00”,並且在您的代碼中將其轉換為UTC是noop。 Mac是您的本地時間,因此它將字符串解釋為在您所在的任何時區表示,然后utc()將其轉換為UTC時間。 這樣您將獲得不同的結果。

如果您想讓Moment知道字符串以UTC表示,則需要告訴它,例如,使用ISO的“ Z”(例如'2018-11-13T19:00:00Z')或使用moment.utc("2018-11-13 19:00:00", format)

嘗試提供數據字符串的格式

console.log(moment('2018-11-13 19:00:00','YYYY-MM-DD h:mm:ss').utc().format())

暫無
暫無

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

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