考虑浏览器JavaScript控制台中的以下两个片段(我尝试过使用Google Chrome)
第1条声明:
s = "2014-03-03 18:30:00";
d = new Date(s);
// Mon Mar 03 2014 18:30:00 GMT+0100 (CET)
第二句话:
s = "2014-03-03T18:30:00";
d = new Date(s);
// Mon Mar 03 2014 19:30:00 GMT+0100 (CET)
看?解析后的日期和时间对我来说与一小时不同,因为我住在 UTC+1 中。
但是为什么 JavaScript Date 对象以不同的方式解析这两个字符串,因为根本没有给出时区?
-
2014-03-03T...
表示法是一种花哨的JavaScript日期时间字符串格式,需要一个时区。如果不提供,则默认为Z
(UTC)。 -
但是,
2014-03-03 18:30:00
表示法只是一个没有有趣名称的常规字符串,如果不提供时区,则采用本地时间。
此信息取自MDN关于Date.parse()
的文章。