我无法理解为什么javascript给出的有效日期等于1 dec给出无效日期的日期?这种行为是否由于特定原因而被纳入语言中?因为它必须是无效的日期我的使用情况 新的日期(“2017年11月31日”)有效日期来自invalida日期的输出Javascript
1
A
回答
1
首先,在Date
constructor没有设计验证输入,甚至是挑剔。相反,它是明确设计不惜任何代价,以创建一个实例,像这样的创意规则:
当日期被称为具有一个以上参数的构造,如果 值低于其合理的范围更大(例如提供13作为月份值的 或者作为分钟值的70),相邻值将被调整为 。例如。新的日期(2013,13,1)相当于新 日期(2014年1,1)
所以如果你真的需要验证的约会,你需要寻找别的地方。
如约11/31/2017
,构造预计这样的:
字符串值表示日期。该字符串应采用Date.parse()方法(IETF-compliant RFC 2822 timestamps以及ISO8601版本)识别的格式 。
...看起来不错。但这如下(重点煤矿):
与Date构造日期字符串的解析(和Date.parse, 它们是等价的)强烈劝阻由于浏览器 分歧和矛盾。
如果我们深入Date.parse()
文件,我们终于阅读本:
ECMAScript规范规定:如果String不符合 标准格式的功能可能回落到任何 implementation-具体的启发式算法或实现特定的解析算法。无法识别的字符串或包含ISO格式字符串中的非法元素 值的日期应导致Date.parse()返回 NaN。
// Non-ISO string with invalid date values new Date('23/25/2014');
将:
然而,由ECMA-262所定义的可能或可能不导致NaN时,取决于 浏览器和值提供,例如在日期字符串无效的值不被识别为ISO格式 在Safari 7
被视为2015年11月25日,在火狐30和 无效的日期本地日期此回退的情况下是一个你的约会落入。
相关问题
- 1. JavaScript日期有效日期确认
- 2. 来自string的JavaScript日期?
- 3. 的JavaScript输出日期
- 4. Javascript给出无效日期
- 5. 出生日期,加入日期和离开日期的有效日期
- 6. 框架来管理日期(生效日期和失效日期)
- 7. Javascript jquery日期“无效日期”错误
- 8. javascript日期转换日期无效
- 9. JavaScript无效日期
- 10. JavaScript解析来自输入类型=“日期”的周日值
- 11. javascript日期()对象返回有效但不新的日期()
- 12. 使用Javascript返回来自输入类型日期的不正确日期
- 13. 来自无效日期的PHP DateTime createFormat
- 14. Linux日期:无效日期
- 15. asp.net有效日期
- 16. 查看javascript有效日期是审查日期之前
- 17. 产品失效日期(意外输出)
- 18. 来自控制器的javascript日期
- 19. 输出单个日期的Javascript数组
- 20. Oracle日期没有来自java的日期
- 21. 输出日期范围内的所有日期
- 22. JavaScript的检测有效日期
- 23. 无效日期返回无效日期
- 24. 我如何找到最接近的有效日期作为无效日期字符串给出的日期?
- 25. 比较日期来决定输出
- 26. 我有javascript日期
- 27. 来自EditText的日期
- 28. 来自Webhook的日期
- 29. 如何在json中输出javascript日期
- 30. Javascript输出根据日期变化
我从来没有能够学习Date构造函数解析器的所有规则和异常。你确定它应该总是拒绝美国格式的日期吗? –
http://stackoverflow.com/questions/8098202/javascript-detecting-valid-dates – msg