Часовой пояс на Highcharts

Насколько я понимаю, значение по умолчанию для Highcharts - это UTC. Я попытался сделать так, как было предложено в ответе в этом столбце График X-оси графика Highcharts для разных диапазонов дат. Если я правильно понимаю, это должно установить часовой пояс для браузера.

Я тестировал это на jsFiddle, и переключить параметр useUTC, кажется, не имеет никакого эффекта.

http://jsfiddle.net/looneyp/me3ry/

Вопрос: Что я делаю неправильно, и как вы правильно настроили часовой пояс?

Ответ 1

Это один из тех дней

Я в Великобритании, поэтому UTC верно или ложно дает те же результаты, что и я в GMT. Мое расхождение между ожидаемым временем показалось из-за проблемы синтаксического анализа в PHP до unixTime.

Ответ 2

Ничто из того, что вы делаете, кажется неправильным. Этот jsFiddle показывает сдвиг оси x, когда UTC отключен в глобальных вариантах Highcharts.

Ответ 4

Highcharts переместили эту опцию в более поздние версии.

Следует иметь в виду, что ваш сдвиг кажется обратным или отрицательным, когда ваше местное время от UTC, так что если вы в UTC + 2, например, ваш timezoneOffset будет -2 * 60, что не является полностью интуитивным:

Highcharts.setOptions({
    time: {
        timezoneOffset: -2 * 60
   }
});

Документация API: https://api.highcharts.com/highcharts/time.getTimezoneOffset

Вот пример: http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/time/timezoneoffset/

Ответ 5

использовать часовой пояс by getfunction Пример: Использование getTimezoneOffset

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

Ответ 6

Добавьте этот код в document.ready, и вы должны получить верхние чарты в вашем местном часовом поясе, если вы используете UTC время

$(document).ready(function () {

  Highcharts.setOptions({
      global: {
          /**
           * Use moment-timezone.js to return the timezone offset for individual
           * timestamps, used in the X axis labels and the tooltip header.
           */
          getTimezoneOffset: function (timestamp) {
              d = new Date();
              timezoneOffset =  d.getTimezoneOffset()

              return timezoneOffset;
          }
      }
  });

});