0

我在使用 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);

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

这里的日期有效

这里的日期是 1970 年,但什么时候可以在控制台中看到日期结果是 2019 年

这很奇怪,因为这两个系列没有做任何不同的事情,并且转换为 Date 格式对这两个系列都有好处

4

1 回答 1

1

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

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

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

它更通用,highcharts 对此反应良好。

于 2020-02-05T11:25:18.383 回答