我正在使用 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
的方式因浏览器而异,有些浏览器比其他浏览器更灵活。
最安全的约会方式是……
- 将您的
element.x
拆分成组件 - 将这些组件转换为整数值
- 使用语法
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/