当我尝试使用FireFox(和IE)从ISO 8601日期创建JavaScript日期实例时,我得到"无效日期":
var d = new Date('2015-05-05Z');
alert(d); // Invalid Date
Run Code Online (Sandbox Code Playgroud)
但Chrome中的工作正常:
var d = new Date('2015-05-05Z');
alert(d); // Tue May 05 2015 01:00:00 GMT +0100 (BST)
Run Code Online (Sandbox Code Playgroud)
演示: https ://jsfiddle.net/z50LL4he/
有没有办法从可在FireFox中运行的ISO 8601日期创建JavaScript日期实例?请注意,我试图在不使用诸如momentjs之类的库的情况下执行此操作.
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
日期字符串末尾的"Z"是时区指示符.由于您没有提供时间,而是提供日期和时区,因此在某些浏览器中导致错误 - 这不是有效的ISO 8601日期.
由于Chrome/Safari似乎实际上会返回一个可用的日期而Firefox/IE没有,我们至少可以设置一些错误处理来检测日期是否正确输出并相应处理.
在FireFox中,如果我们将无效的日期字符串传递给isNaN()函数,它将返回true.知道我们可以这样说:
if(isNaN(date)){
//handle the error appropriately
}
else{
//carry on like nothing happened
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |