这两个日期时间字符串有什么区别?

时间:2013-12-24 07:21:35

标签: javascript date

在Chrome DevTool中测试(中国标准时间):

new Date("2013-12-24").toISOString()

“2013-12-24T00:00:00.000Z”

new Date("2013/12/24").toISOString()

new Date("Dec 24, 2013").toISOString()

“2013-12-23T16:00:00.000Z”

这些差异是什么?

1 个答案:

答案 0 :(得分:2)

第一个2013-12-24被识别为ISO-8601日期字符串的第一部分,由于它没有与之关联的时间或时区,因此将其解析为UTC。

第二个是未定义的,直到浏览器/ JS引擎才能解析它。在您的情况下,它似乎将其解析为美国日期字符串,但使用您的本地时区而不是UTC。您可以在MDN Page for Date.parse上了解有关标准化日期格式的更多信息。

如果可以,只需坚持使用第一个,因为它是标准。第二个例子可能甚至不能在不同的语言环境中工作,但我不能肯定地说。如果您确实需要任意日期解析,您可能需要考虑使用库,因为它非常复杂并且不受标准JS的限制。像datejs这样的东西可能吗?

相关问题