我觉得不同的是该值是如何解析的。
new Date('05-20-2015').toString();//parse the date using local time zone
new Date('2015-05-20').toString();//parses date as if it is in GMT
正如你可以看到有5小时的给定值
Date.parse()
给定一个表示时间的字符串,解析(之差)返回的时间价值。它 接受RFC2822/IETF日期语法(RFC2822第3.3节),例如 “星期一,1995年12月25日13:30:00 GMT”。据了解美国大陆 时区的缩写,但对于一般的使用,使用时区偏移量, 例如,“周一,1995年12月25日13时三十○分00秒0430”(4小时30分钟 东格林威治子午线)。如果未指定时区,并且该字符串采用ES5可识别的ISO格式,则假定为UTC。 GMT 和UTC被认为是等同的。本地时区是用来 在RFC2822章节解释变量3.3格式(或ES5认定为ISO 8601的任何格式不 )不包含的时区 信息。
这里2015-05-20
在ISO8601 format,所以它是使用UTC时区处理的。
如果你愿意,你可以通过像new Date('2015-05-20 GMT-0500')
我的浏览器(Firefox)说第一个“无效日期”。你正在使用哪种浏览器? –
@GregHewgill有趣的是,Firefox的说,这是对我无效,以及(尽管我在美国,这种格式是不幸的规范)。 Chrome很好用。 – ajp15243
@GregHewgill这将取决于使用的语言环境/时区....对我来说这是工作 –