Highcharts отображает неправильный месяц (следующий месяц) в диаграмме даты и времени

Как упоминалось в заголовке, Highcharts отображает следующий месяц вместо того месяца, который я хочу показать.

<script>

$(function () {
    Highcharts.setOptions({
        global: {
            //timezoneOffset: 3.30 * 60
        }
    });

    $('#container').highcharts({
        xAxis: {
            type: 'datetime',
            tickInterval: 3600 * 1000,
            min: Date.UTC(2016,02,20),
            max: Date.UTC(2016,02,21),
        },
        series: [{
            data: [
                [Date.UTC(2016, 02, 20,0,45), 1],
                [Date.UTC(2016, 02, 20,12,15), 3],
                [Date.UTC(2016, 02, 20,14,30), 6],
                [Date.UTC(2016, 02, 20,15,45), 9],
                [Date.UTC(2016, 02, 20,17,45), 5],
                ],
            pointStart: Date.UTC(2016, 02, 20),
            pointInterval: 3600 *1000
        }]
    });
});
</script>
<div id="container"></div>

Итак, в соответствии с кодом, который я предоставляю, я хочу, чтобы он отображал февраль в xAxis, но вместо этого он переходит на март.

Как я могу исправить это, чтобы отображать месяц, который я хочу?

Использует ли Highcharts часовой пояс пользователя? Как я могу отобразить фиксированный часовой пояс и избежать использования пользовательского часового пояса?

https://jsfiddle.net/v4kasmv1/


person Osiris    schedule 20.02.2016    source источник


Ответы (1)


Просто измените 02 на 01 для февраля min: Date.UTC(2016,01,20) как 00 для января, 01 для февраля и 02 для марта:

$(function () {
    Highcharts.setOptions({
        global: {
            //timezoneOffset: 3.30 * 60
        }
    });

    $('#container').highcharts({
        xAxis: {
            type: 'datetime',
            tickInterval: 3600 * 1000,
            min: Date.UTC(2016,01,20),
            max: Date.UTC(2016,01,21),
        },
        series: [{
            data: [
                [Date.UTC(2016, 01, 20,0,45), 1],
                [Date.UTC(2016, 01, 20,12,15), 3],
                [Date.UTC(2016, 01, 20,14,30), 6],
                [Date.UTC(2016, 01, 20,15,45), 9],
                [Date.UTC(2016, 01, 20,17,45), 5],
                ],
            pointStart: Date.UTC(2016, 01, 20),
            pointInterval: 3600 *1000
        }]
    });
});
person The developer    schedule 20.02.2016
comment
SkyFloor, функция Javascript Date.UTC ожидает, что месяц будет от 0 до 11, поэтому редактирование данных xAxis — это не какой-то хак, чтобы показать правильный месяц, а вместо этого ссылается на вашу необходимость использовать правильное значение, чтобы получить правильный месяц показать, в данном случае. w3schools.com/jsref/jsref_getutcmonth.asp - person Stephen Gornick; 17.12.2016