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

时间:2016-05-06 17:55:04

标签: javascript datetime momentjs utc date-conversion

我正在尝试将特定日期转换为utc(将其保存在db中),并在获取后将其显示为本地时间。当我使用时刻时,与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"

日期:

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

我相信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

日期:

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.

为什么时刻会出现这种滞后?

1 个答案:

答案 0 :(得分:2)

您使用大写M代替mm分钟,而且它会给您几个月的时间。切换到小米,一切都很好。

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