【问题标题】:Highchart dates do not work for some data seriesHighchart 日期不适用于某些数据系列
【发布时间】:2020-02-05 11:07:23
【问题描述】:

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

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

【问题讨论】:

    标签: javascript highcharts


    【解决方案1】:

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

    一般来说,我的建议是使用 js 毫秒时间戳,而不是像这样的 Date 对象:

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

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

    【讨论】:

    • 非常感谢,它适用于毫秒时间戳!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2015-02-06
    相关资源
    最近更新 更多