我在Chrome JS控制台中尝试了一下,我的地区时区设置为PST:
(new Date("07-15-2005"))=> Fri 15 2005 00:00:00 GMT-0700 (日)
(new Date("07-15-2005")).getTime();=> 1121410800000
但是...
(new Date("2005-07-15"))=>清华-2005年7月14日17:00:00GMT-0700
(new Date("2005-07-15")).getTime();=> 1121385600000
我原本希望在这两个版本中都能进行字符串解析。但是我不明白为什么当使用YYYY-MM-DD格式时,它会假定时区偏移。这就好像我用当地的TZ表达"2005-07-15“,但"07-15-2005”是用UTC表达的。
这是正确的解释吗?
发布于 2012-10-04 06:21:00
发布于 2012-10-04 06:04:51
我似乎无法复制您的结果,但不同浏览器的结果似乎有所不同。
请参阅:http://jsfiddle.net/f7DMV/
在Firefox和Opera中,我只能正确解析中间行,其他的都是无效的日期。
在Chrome中,第一行和第二行都可以正确解析(没有区别),但最后一行仍然无效。
发布于 2012-10-04 06:22:29
不同的浏览器会有所不同。ECMA262规范指出,传递给Date函数的任何字符串都不是YYYY-MM-DD格式,它可能会退回到特定于实现的试探法或特定于实现的日期格式。
https://stackoverflow.com/questions/12717089
复制相似问题