为什么 Highcharts 不显示在 x 轴上格式化的日期?

Why isn't Highcharts showing the date formatted on x Axis?

Look at this jsfiddle,即使日期格式为 day: '%e of %Y',它仍然以 ISO 格式显示。

这是javascript:

var xAxis = {
        type: 'datetime',
        dateTimeLabelFormats: {
            day: '%e of %Y'
        }
    };

xAxis.categories = [];

for (var i=1;i<=10;i++){
   var d = new Date(2015,3,i);  
   xAxis.categories[i] = d;
 }

$('#container').highcharts({
    xAxis: xAxis,
    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1]
    }]
});

正如 Ondkloss 在评论中所说,您应该使用 datetimecategoriesdatetime 在您的情况下是更好的选择。你可以使用这样的东西:

var dataPlusDates = [];
var data = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1];

for (var i = 1 ; i <= 10 ; i++) {
    var d = Date.UTC(2015,3,i);
    dataPlusDates.push([d, data[i]]);
 }

$('#container').highcharts({
    xAxis: xAxis,
    series: [{
        data: dataPlusDates
    }]
});

系列中的数据应采用 [时间(以毫秒为单位)] 的格式,再次如 Ondkloss 所说。 time in milliseconds可以用Date.UTC(year, month, day)来计算。所以我更改了您的 for 循环并为您创建了该格式并将其放入 series.data。这是 DEMO.