如何在 Highcharts 中的 x 轴上设置日期格式?

Sam*_*Sam 4 javascript jquery highcharts

我将日期存储在需要显示在图表的 x 轴上的数组中。如何设置日期格式以使其在 x 轴上正确呈现?

{
  "xData": ["2020-10-01T19:30:00.000Z",
             "2020-10-02T19:30:00.000Z",
             "2020-10-03T19:30:00.000Z",
             "2020-10-04T19:30:00.000Z",
             "2020-10-05T19:30:00.000Z",
       ...
       ...
  ]
}

Highcharts.chart('container, {
  chart: {
    marginLeft: 40                  
  },
  title: {
    text: ''
  },
  xAxis: {
    categories: Date.UTC(xData),
  },
  yAxis: {
    title: {
      text: null
    }
  },
  series: [{
      data: dataset.data,
  }]
});
Run Code Online (Sandbox Code Playgroud)

ppo*_*zek 8

如果要将 x 轴与类别一起使用,请将日期字符串映射到包含所需格式字符串的数组。

    xAxis: {
        categories: dataset.xData.map(date => {
            return Highcharts.dateFormat('%Y-%m-%d', new Date(date).getTime());
        })
    }
Run Code Online (Sandbox Code Playgroud)

现场演示: http: //jsfiddle.net/BlackLabel/oL1ncjes/

API 参考: https: //api.highcharts.com/class-reference/Highcharts#.dateFormat


但我认为更合适的解决方案是创建[x, y]格式数据,使用日期时间x轴类型和标签格式:

const processedData = dataset.data.map((dataEl, i) => {
    return [new Date(dataset.xData[i]).getTime(), dataEl] // x, y format
});

Highcharts.chart('container', {
    ...,
    xAxis: {
        type: 'datetime',
        labels: {
            format: '{value:%Y-%m-%d}'
        }
    },
    series: [{
        data: processedData
    }]
});
Run Code Online (Sandbox Code Playgroud)

现场演示: http://jsfiddle.net/BlackLabel/y0dkzn1q/

API 参考: https: //api.highcharts.com/highcharts/xAxis.type