Firefox和Chrome似乎再次以不同的方式解析日期
Firefox and Chrome again seem to parse dates differently
所以我的问题是:
new Date('01/32/1980') //January 32, 1980 (invalid)
在Chrome中运行此javascript会导致'Invalid Date'
在Firefox中运行此javascript,结果显示日期为1980年2月1日
我看到过很多问题,人们对不同浏览器的javascript日期解析器有不同的问题,但不是这个特殊的情况。
我需要在javascript中验证日期,但是像这样的东西在浏览器之间不像预期的那样工作:
if(isNaN(new Date('1/32/1980').getTime())){
//I expect this to be a valid date
}else{
//I expect this to be an invalid date
}
他们的方式Chrome解析'1/32/1980',一个无效的日期,这段代码工作并放到else块。在这个完全相同的场景中,Firefox显示valid并将其放入valid部分。
我错过了什么,有没有更好的方法来验证这个字符串?
使用RegEx的潜在答案响应非常混乱,仍然没有完全覆盖这一点。
我选择了一个更干净的解决方案,使用JQuery:
$.datepicker.parseDate('mm/dd/yy','1/32/1980')
我只是像这样把它包起来:
function isValidDate(strDate, strDateFormat){
try{
$.datepicker.parseDate(strFormat, strDate);
} catch (e) {
return false;
}
return true;
}
Jquery在所有浏览器中都会抛出一个"Invalid Date"异常。这正是我所需要的。当然,这意味着用于一个小部件,但它的逻辑是相当可靠的社区测试。
相关文章:
- Meteor-在一段时间内解锁模板(按日期)
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 如何在拉拉维尔中以不同的方式比较日期和时间
- 离子/角度日期输入使用时刻以编程方式设置
- JavaScript/jQuery:格式化日期计算结果的最佳方式
- UIWebView - 以编程方式设置默认日期
- 使用 JS 将日期字符串转换为可读方式
- 为什么一串数字的工作方式与新日期中的实际数字不同
- 以可在 Azure 移动服务 (Javascript) 中查询的方式保存日期时间
- 以编程方式在 jQuery 日期选择器上设置多个日期
- 以编程方式更新 Webshim 日期在 IE 8 中不起作用
- 以编程方式更改jquery ui日期选择器
- 当我点击事件时,如何以这种方式在FullCalendar上设置日期格式
- 用moment.js从给定日期减去周的最佳方式是什么
- 添加新行,将日期选择器绑定到cloumn以一种奇怪的方式工作
- 如何使用D3.js在一个下拉列表中按照自然的方式安排日期
- Bootstrap日期选择器以编程方式从Epoch设置时间
- 如何删除/重置以编程方式创建的javascript日期滑块
- 将本地时区日期对象转换为UTC时区日期对象的优雅方式
- Firefox和Chrome似乎再次以不同的方式解析日期