【发布时间】:2015-11-10 14:43:06
【问题描述】:
我正在使用 JavaScipt 的 new Date(datestring) 来解析 IE11 上的用户输入。
具体的代码行是
var date = new Date(enteredText);
它接受日期字段的任何参数 - 例如,5/50/1997 解析为 June 19, 1997,因为 6 月 19 日将是 5 月的第 50 天。
有没有办法强制它不这样做并且只接受真实的日期?
【问题讨论】:
-
您可以在创建日期对象之前检查该值。但是我在 chrome 中尝试了它,但我无法创建一个大于 30/31 的日期。它返回“无效日期”
-
您需要自己解析日期。如果您将无效的日期字符串传递给日期构造函数,browsers are free to interpret as they please:“如果字符串不符合该格式,则函数可能会退回到任何特定于实现的启发式或特定于实现的日期格式。”我>
-
不同的浏览器对日期函数的处理方式不同。有些返回日期有些返回无效日期。
-
Date对象在 JavaScript 中根本被破坏,如果您需要在前端处理日期,我建议使用 momentjs,额外的字节将为您节省大量时间和头痛跨度>
标签: javascript date