2015-01-11 3 views
0

Я пытаюсь создать график в высоких диаграммах, где интервал графика равен календарному месяцу (меняется в месяц). Я использую date.js, который имеет функцию addMonths, которая понимает разное количество дней в месяц.Ошибка при увеличении оси X по месяцам в Highchart

Однако у меня возникли проблемы с преобразованием этого во что-то, что понимает highcharts (кажется, это ms).

Кто-нибудь знает, как я могу получить этот простой код POC с интервалом в 1 месяц по оси x?

http://jsfiddle.net/uqv23bze/

$(function() { 
var data = []; 
var d = new Date(); 

for(var i=0;i<10;i++){ 
    var x = new Date(d.addMonths(1));   
    data.push([x,i]); 
} 

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

});

ответ

2

HighchartsUTC формат даты в ms как вы сказали. DateTime могут быть преобразованы с помощью Date.UTC в JavaScript:

var date = new Date(d.addMonths(1)); 
var x = Date.UTC(date.getYear() + 1900, date.getMonth(), date.getDate()); 

Также вы должны использовать tickInterval для xAxis, чтобы убедиться, что интервалы в месяцах:

tickInterval: 30 * 24 * 3600 * 1000 // (30 days, 24 hours, 3600 seconds, 1000 milliseconds) 

Вот DEMO

+0

Спасибо он работал – Jamesla