为什么Date.parse("2011-11-15")
在 Web 浏览器中考虑当前时区, Date.parse("2011/11/15")
而不考虑当前时区?为什么结果不一样?
问问题
307 次
2 回答
9
根据ECMA-262的第 15.9.1.15 节,第一种形式被视为 UTC 中的 ISO 日期。根据第 15.9.4.2 节,正在以特定于实现的方式考虑第二种形式:
该
parse
函数将ToString
运算符应用于其参数并将生成的字符串解释为日期和时间;它返回一个数字,对应于日期和时间的 UTC 时间值。根据字符串的内容,字符串可能被解释为本地时间、UTC 时间或其他时区的时间。该函数首先尝试根据日期时间字符串格式(15.9.1.15)中调用的规则解析字符串的格式。如果字符串不符合该格式,则函数可能会退回到任何特定于实现的启发式或特定于实现的日期格式
所以我怀疑“2011/11/15”正在转换为 11 月 15 日的当地午夜,而“2011-11-15”正在转换为11 月 15 日的UTC午夜。
于 2011-11-17T11:34:32.347 回答
1
日期/时间字符串可能是 ISO 8601 格式。从 JavaScript 1.8.5 / Firefox 4 开始,支持 ISO 8601 的子集。例如,可以传递和解析“2011-10-10”(仅日期)或“2011-10-10T14:48:00”(日期和时间)。尚不支持 ISO 日期中的时区,例如“2011- 10-10T14:48:00+0200"(带时区)尚未给出预期结果。
于 2011-11-17T11:35:49.983 回答