JavaScript new Date() 在 IE、Safari 中返回 NaN

标签 javascript jquery date internet-explorer highcharts

我正在使用 highcharts 绘制图表并使用 new Date() 函数解析日期。在 Chrome 和 FF 中,日期解析正常。

但是在 IE 和 Safari 中,我得到 NaN 和无效的日期格式 resp.

下面是我从 (element.x) 数组中的后端获取的数据

2016, 04,05
2016, 04,06
2016, 04,07
2016, 04,08
2016, 04,09
2016, 04,10

现在,我将它转换为 JavaScript 中的 Date 对象,如下所示:

//Loop starts
var xAxis = new Date(element.x);
datas.push([Date.UTC(xAxis.getUTCFullYear(),xAxis.getUTCMonth(), xAxis.getUTCDate())]);
//Loop ends

现在,此操作在 IE 中返回 NaN,但在 chrome 中运行良好,如下所示:

Chrome

Array([0]=>140004454) - Unix Time stamp i get

IE

Array([0]=>NaN)

最佳答案

new Date(dateString) 解析 dateString 的方式因浏览器而异,有些浏览器比其他浏览器更灵活。

最安全的约会方式是……

  1. 将您的 element.x 拆分成组件
  2. 将这些组件转换为整数值
  3. 使用语法 new Date(year, month, day) 创建一个新日期

所以,而不是......

var xAxis = new Date(element.x);

...像这样创建你的日期:

var xvals = element.x.split(',');
var xAxis = new Date(
    parseInt(xvals[0]),
    parseInt(xvals[1]) - 1,
    parseInt(xvals[2])
);

这应该适用于所有浏览器!

关于JavaScript new Date() 在 IE、Safari 中返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001839/

相关文章:

javascript - 阐明 JavaScript 原型(prototype)

javascript - 使用 ExtJS 获取特定类型的所有元素

java - 从字符串转换为日期时间

java - 使用 SQLite 时,Hibernate 将 Calendar 存储为 int

php - 根据时间戳按日期和时间对条目进行分组

javascript - 即使存在 CORS header ,AJAX 请求也会失败

javascript - 自动执行电子邮件中的 Javascript 或恶意代码

php - 从按钮按下事件运行 SQL 查询

javascript - 使用 jquery 和 css 在点击时展开 div

javascript - 在 jQuery 中创建动态表单数据