javascript - Highchart 日期不适用于某些数据系列

标签 javascript highcharts

我在使用 HighCharts (StockChart) 创建的图表时遇到了问题,更准确地说,我遇到了不适用于某些数据系列且默认设置为 1970 年的日期的问题。 我从 ajax 请求获取数据,并使用 Highchart 格式创建数据系列,如下所示:

data.forEach(element => {
    var d = new Date(Date.parse(element[0]));
    console.log("d : " + d);
    timestampData.push([d, element[1]]);
});
console.log(timestampData);
timestampData = timestampData.sort((a, b) => a[0] - b[0]);

chart.series[0].setData(timestampData, true);

这是两种情况的结果,日期格式完全相同,但日期适用于一个系列,但不适用于另一个系列

Here the date works

Here the date is to 1970 but when can see the date result in console is to 2019

这很奇怪,因为这两个系列没有做任何不同的事情,并且转换为日期格式对于这两个系列来说是有好处的

最佳答案

关于记录的日期,在不知道元素迭代器的值的情况下很难进行调试,但 Date.parse() 可能会产生不明确的结果,具体取决于其参数的格式。

一般来说,我的建议是使用 js 毫秒时间戳而不是 Date 对象,如下所示:

data.forEach(element => {
  var d = new Date(Date.parse(element[0]));
  timestampData.push([d.valueOf(), element[1]]);
});

它更加通用,highcharts 对此 react 良好。

关于javascript - Highchart 日期不适用于某些数据系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60074434/

相关文章:

Javascript for-in 循环问题

javascript - 为什么 Javascript addEventListener 不执行任何操作?

javascript - AngularJS:根据格式化日期过滤/搜索

javascript - 如何隐藏底部垂直线 highcharts.js

javascript - Highcharts:如何减少标签宽度/高度

javascript - Nexus 7 (4.2.1) 上的 Highcharts 容器选择问题

javascript - 如何通过 METHOD 转换 DATA 中的值(未定义为数字)

javascript - JavaScript switch 语句中的语法错误

javascript - 绘制点标签的显示未正确显示在每月第一天的 X 范围图表上 - Highcharts

javascript - yAxis 数据在右侧定位时溢出到图表上