我尝试获得UTC日期。为什么
(new Date("2015-04-22")).getUTCDate() = 22
和
(new Date("Apr 22, 2015")).getUTCDate() = 21
答案 0 :(得分:2)
引用MDN关于Date.parse
的工作方式(由new Date("string")
调用):
Differences in assumed time zone
如果日期字符串为
"March 7, 2014"
,parse()
会假定为当地时区,但如果采用"2014-03-07"
这样的ISO格式,则会假设 UTC的时区。因此使用这些生成Date对象 字符串将代表不同的时刻,除非系统是 使用UTC的本地时区进行设置。这意味着两个日期字符串 看似等效的可能会导致两个不同的值取决于 正在转换的字符串的格式(此行为是 在ECMAScript ed 6中进行了更改,以便将两者视为本地。
留意我在最后一行突出显示的警告