Date.parse()
方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。
语法
显示调用:
Date.parse(dateString)
隐式调用:
new Date(dateString)
parse
方法接受一个表示时间的字符串,返回相应的时间值。该方法可以接受符合 RFC2822 / IETF 日期语法 (RFC2822 Section 3.3) 的字符串,如 "Mon, 25 Dec 1995 13:30:00 GMT
"。该方法能够理解美国大陆时区的缩写,但是为了更通用,应该使用时区偏移,如 "Mon, 25 Dec 1995 13:30:00 +0430
" (格林威治的子午线向东偏移4小时30分钟)。如果没有指定时区,默认使用本地时区。
GMT 和 UTC 被看作相等。 如果 RFC2822 Section 3.3 格式中不包含时区信息时,会以本地时区来解析日期字符串。
由于在解析日期字符串时存在偏差会导致结果不一致,因此推荐始终手动解析日期字符串,特别是不同的ECMAScript实现会把诸如“2015-10-12 12:00:00”的字符串解析为NaN,UTC或者本地时间。
所以,若要返回值一致,最好在Date.parse()参数中指明时区,合适的例子如下:
Date.parse("Wed, 09 Aug 1995 00:00:00"); 在时区 GMT-0300 中返回 807937200000 ,在其他时区中返回另外的值,因为没有时区标志并且不是 ISO 格式,所以作为本地时区处理。 Date.parse("Wed, 09 Aug 1995 00:00:00 GMT"); 因为指定了时区 GMT (UTC),所以不管本地时区如何,总是返回 807926400000 。