Highcharts v4.0.4 построение местного часового пояса - PullRequest
0 голосов
/ 02 июля 2018

Я строю временные метки UTC для конкретного пользователя, чей часовой пояс мне известен. Каждая точка данных имеет формат "2018-06-19 13:19:52.000Z" и была добавлена ​​к серии точек, которые должны быть нанесены как moment("2018-06-19 13:19:52.000Z").tz(this.tiemZone).valueOf().

Когда точка строится, она отображается как 6/19 13:19:52, но я бы хотел, чтобы она отображалась во временном поясе пользователя, поэтому что-то вроде 6/19 6:19:52.

Я читал, что Highcharts строит графики в UTC, но если я установлю useUTC: false (где-то), он будет отображаться в часовом поясе текущего браузера, но на самом деле я хочу построить график в часовом поясе пользователя, например, если часовой пояс "Лос-Анджелес", то указанное выше время будет 6:19:52.

time = new window.Highcharts.setOptions({
     time: {
         timezone: _that.timeZone,
         timezoneOffset: _that.offset
     }
}, this);

return  '<b>' + this.series.name + '</b><br/>' +
                    Highcharts.dateFormat('%m/%d %H:%M:%S',
                        this.x)
                    + ' - ' + Highcharts.numberFormat(this.y, 2) + ' ' + toolTipUnits;

Смещение, которое я рассчитал после взятия момента одной из меток времени UTC:

moment(data[0][0]).tz(this.timeZone)._offset, здесь было равно -420

Я пробовал что-то выше, но во всплывающей подсказке все еще отображается время UTC 13:19:52. Любой совет?

************************ ОБНОВЛЕНИЕ ********************** *******

time = new Highcharts.setOptions({
   global: {
      timezone: _that.timeZone,
      timezoneOffset: _that.offset
   }
}, this);

return  '<b>' + this.series.name + '</b><br/>' +
                    Highcharts.dateFormat('%m/%d %H:%M:%S', this.x)
                    + ' - ' + window.Highcharts.numberFormat(this.y, 2) + ' ' + toolTipUnits;

Я обновил код, как показано выше, и теперь точка данных отображается как 6/19 20:19:52, хотя я добавляю -420 к точке данных (this.x). Глядя на это, но есть идеи, почему?

1 Ответ

0 голосов
/ 02 июля 2018

Мне кажется, вы просто движетесь в противоположном направлении.

В документации Highcharts API говорится, что «положительные значения - запад, отрицательные значения - восток от UTC». Если вы предполагаете, что 6/19 13:19:52 - это время UTC, и вы хотите 6/19 6:19:52 (семь часов запад от UTC), то вы захотите установить положительное число для своего смещения (timezoneOffset: 420). Теперь вы устанавливаете отрицательное число (-420), поэтому оно возвращает смещение в течение семи часов восток UTC.

https://api.highcharts.com/highcharts/time.timezoneOffset

Надеюсь, это полезно для вас.

(Кроме того, могу ли я предположить, что в вашем коде возврата вы используете это в форматере всплывающей подсказки?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...