[英]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.