2015-09-16 3 views
0

Я использую HighCharts (плагин javascript chart) и создаю диаграмму из серии временных меток, которые находятся в часовом поясе Европы/Лондона. Когда я передаю их в HighCharts, они преобразуются в UTC. Я попытался использовать:Как компенсировать данные HighCharts?

global: { 
    useUTC: false 
} 

, но это не имеет никакого эффекта. Я также пытаюсь использовать momentJs следующим образом:

global: { 
    getTimezoneOffset: function (timestamp) { 
     var destZone = 'Europe/London'; 
     var timezoneOffset = moment.tz(timestamp, destZone).utcOffset(); 
     return timezoneOffset; 
    } 
} 

но agin, без эффекта. Как я могу добиться этого?

ответ

4

я обнаружил, что я помещал глобальный блок

global: { 
    .... 
} 

в фактической диаграмме конкретных вариантов. На самом деле нужно зайти в блок Highcharts.setOptions:

Highcharts.setOptions({ 
     global: { 
      getTimezoneOffset: function (timestamp) { 
       var chartTimezone = 'Europe/London'; 
       var timezoneOffset = -moment.tz(timestamp, chartTimezone).utcOffset(); 
       return timezoneOffset; 
      } 
     } 
}); 
+0

Значит, в данный момент хорошо работает? –

+1

Да, это так .... – JoeTidee

0

У меня была такая же проблема, решить ее:

global : { 
    timezoneOffset: integerValue 
} 

Метод descrive в api:.

«Смещение в течение нескольких минут часовой пояс Положительные значения запад, отрицательные значения к востоку от UTC, как в методе ECMAScript getTimezoneOffset.Это используется для отображения данных на основе UTC в предопределенном часовом поясе. По умолчанию используется значение 0. "

В моем случае я использую 180 (-03: 00), как мой integerValue

+0

Будет ли это автоматически настраиваться на летнее время? – JoeTidee

+0

@JoeTidee Нет, не будет. – dre

Смежные вопросы