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

时间:2015-03-15 22:35:01

标签: highcharts

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]
    }]
});

1 个答案:

答案 0 :(得分:0)

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

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