解决IE、firefox浏览器下JS的new Date()的值为Invalid Date、NaN-NaN的问题
时间: 2024-01-21 14:16:32 浏览: 27
问题描述:
在 IE 和 Firefox 浏览器下,使用 JS 的 Date 对象的时候,有时候会出现 new Date() 返回值为 Invalid Date 或 NaN-NaN 的问题,这可能会导致程序出现异常。
问题原因:
这个问题是由于不同浏览器对于日期格式的解析不同导致的。在标准情况下,new Date() 会返回当前时间的时间戳,但是如果传入的日期格式有误,就会返回 Invalid Date 或 NaN-NaN。
解决方案:
我们可以通过以下方法解决这个问题:
1. 使用标准日期格式:YYYY-MM-DDTHH:mm:ss.sssZ
这是一种符合 ISO 标准的日期格式,各个浏览器都能够正确解析。例如:
```javascript
var dateStr = '2022-01-01T00:00:00.000Z';
var date = new Date(dateStr);
```
2. 自行解析日期字符串
如果无法使用标准日期格式,我们可以手动解析日期字符串,然后使用 Date 对象构造函数创建日期对象。例如:
```javascript
var dateStr = '2022/01/01 00:00:00';
var dateArr = dateStr.split(/[- :\/]/);
var date = new Date(dateArr[0], dateArr[1]-1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);
```
以上两种方法都能够解决 IE 和 Firefox 浏览器下 new Date() 返回值为 Invalid Date 或 NaN-NaN 的问题。