Date.parse的行为不同?

时间:2010-09-29 18:54:56

标签: javascript datetime

alert(Date.parse('Mar 1 1990'));
在jsFiddle中,

返回一个日期时间整数,如预期的那样。在我的机器上,它返回...一个时间戳字符串?

Thu Mar 01 1990 00:00:00 GMT-0500 (EST) vs 636267600000

1 个答案:

答案 0 :(得分:2)

ECMAScript语言规范

  

15.9.4.2 Date.parse(string)

     

解析函数适用于   ToString运算符到它的参数和   将结果String解释为   日期和时间; 返回一个数字,   对应的UTC时间值   日期和时间。字符串可能是   解释为当地时间,UTC   时间,或其他时间的时间   区域,取决于的内容   串。该功能首先尝试   解析String的格式   按照规定的规则   日期时间字符串格式(15.9.1.15)。   如果String不符合   格式化功能可能会回落   任何特定于实现的启发式方法   或特定于实施的日期   格式。无法识别的字符串或   包含非法元素的日期   值格式格式为String   导致Date.parse为返回NaN

你可能做错的是两个测试不一样:

alert(Date.parse('Mar 1 1990'));返回一个数字(总是)

alert(new Date('Mar 1 1990'));返回您提到的字符串

(因为在日期对象上调用toString方法)