Moment js utc 转换未按预期工作,落后于日期对象值

wal*_*lop 5 javascript datetime utc date-conversion momentjs

我正在尝试将特定日期转换为 utc(将其保存在数据库中),并在获取它后将其显示为当地时间。当我使用 moment 时,与 js Date 对象相比总是有半小时的延迟,知道为什么吗?

日期是 2016 年 5 月 8 日,浏览器时区是印度

将日期转换为 UTC:时刻:

moment('2016-05-08', 'YYYY-MM-DD').utc().format('YYYY-MM-DD HH:MM:SS Z')
Result: "2016-05-07 18:05:00 +00:00"
Run Code Online (Sandbox Code Playgroud)

日期:

new Date('2016/05/08').toUTCString()
Result: "Sat, 07 May 2016 18:30:00 GMT"
Run Code Online (Sandbox Code Playgroud)

我相信 18:30 是正确答案,而不是 18:05

从 Utc 至今: 时刻:

moment('2016-05-07 18:05:00 +00:00', 'YYYY-MM-DD HH:MM:SS Z').format('YYYY-MM-DDTHH:MM:SS')
Result: "2016-05-07T23:05:00" //This should be 8th May since I had started with 8th May
Run Code Online (Sandbox Code Playgroud)

日期:

new Date("Sat, 07 May 2016 18:30:00 GMT").toString()
Result: "Sun May 08 2016 00:00:00 GMT+0530 (India Standard Time)" //this is the correct answer since I had initially started with 8Th May.
Run Code Online (Sandbox Code Playgroud)

时刻有这种滞后的原因是什么?

Mag*_*int 6

你使用的资金M不是mm几分钟,而是几个月。换成小m就一切正常了。

moment('2016-05-08', 'YYYY-MM-DD').utc().format('YYYY-MM-DD HH:mm:ss Z')
"2016-05-07 18:30:00 +00:00"
Run Code Online (Sandbox Code Playgroud)

  • 如果这让你感觉好一点,我不得不盯着它看比我想承认的更长时间,因为我是 moment 的维护者之一:-) (4认同)