在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”
这些差异是什么?
答案 0 :(得分:2)
第一个2013-12-24
被识别为ISO-8601日期字符串的第一部分,由于它没有与之关联的时间或时区,因此将其解析为UTC。
第二个是未定义的,直到浏览器/ JS引擎才能解析它。在您的情况下,它似乎将其解析为美国日期字符串,但使用您的本地时区而不是UTC。您可以在MDN Page for Date.parse上了解有关标准化日期格式的更多信息。
如果可以,只需坚持使用第一个,因为它是标准。第二个例子可能甚至不能在不同的语言环境中工作,但我不能肯定地说。如果您确实需要任意日期解析,您可能需要考虑使用库,因为它非常复杂并且不受标准JS的限制。像datejs这样的东西可能吗?