简单函数 Date.parse()
在 Internet Explorer 8 中运行不佳。
我正在使用 Date.parse()
来验证格式为 "MM/DD/YYYY"
的日期。
_.isNaN(Date.parse("99/99/9999"))
返回true
- 日期无效_.isNaN(Date.parse("01/01/1990"))
返回false
- 日期有效
但现在我在 IE 8 中尝试了我的 JavaScript,但我很困惑。
“88/88/8888”
- 这个日期一切正常 - 日期无效。"13/35/2012"
- 无效日期 但Date.parse("13/35/2012")
仅在 IE 中解析此日期并且不返回NaN
。
有什么想法吗?
最佳答案
标准 JavaScript 只接受 RFC 2822 日期,看起来不像那样。您必须编写自己的代码来分离日期部分,将它们转换为数字,然后以这种方式生成 Date
实例。
Internet Explorer 还支持 ISO 日期 (2012-09-20 08:22),它实际上会解析“MM/DD/YYYY”日期。它正在为您的“13/35/2012”日期执行此操作,就 JavaScript 而言,这是一个完全有效的日期:它是 2013 年 2 月 4 日。JavaScript“修复”了虚假日期;当年的第13个月是次年的第1个月,第35天(如果是1月,则为31天)是下个月的第4天。
基本上,您期望 Date 解析器的行为与实际行为不同。
关于javascript - Date.parse() 在 IE 8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513441/