Highcharts v4.0.4绘制本地时区

时间:2018-07-02 14:57:25

标签: highcharts timezone

我正在为我知道其时区的特定用户绘制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 :(得分:1)

在我看来,您只是朝相反的方向前进。

从Highcharts API文档中,它说“正值是UTC的西,负值是UTC的东”。如果您假设6/19 13:19:52是世界标准时间,并且想要6/19 6:19:52(世界标准时间西七个小时),则需要为偏移量设置一个正数({ {1}})。您现在正在做的是设置一个负数(timezoneOffset: 420),因此它返回的偏移量是UTC的东(strong)东七个小时。

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

我希望这对您有帮助。

(此外,我可以假设您在返回码中使用的是工具提示格式程序吗?)