2011-11-15和2011/11/15的不同Date.parse结果

KIR*_*KIR 2 javascript datetime date-parsing

为什么Date.parse("2011-11-15")在Web浏览器中考虑当前时区,而 Date.parse("2011/11/15")不是?为什么结果不同?

Jon*_*eet 9

根据ECMA-262的第15.9.1.15节,第一种形式被视为UTC的ISO日期.根据第15.9.4.2节,第二种形式正在以特定于实施的方式加以考虑:

parse函数将ToString运算符应用于其参数,并将结果String解释为日期和时间; 它返回一个Number,即与日期和时间对应的UTC时间值.String可以解释为本地时间,UTC时间或某个其他时区的时间,具体取决于String的内容.该函数首先尝试根据日期时间字符串格式(15.9.1.15)中调出的规则来解析字符串的格式.如果String不符合该格式,则该函数可以回退到任何特定于实现的启发式或特定于实现的日期格式

所以我怀疑"2011/11/15"正在转换到11月15日的当地午夜,而"2011-11-15"正在转换为11月15日午夜的UTC.