我正在为我知道其时区的特定用户绘制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
。对此进行了调查,但是知道为什么吗?
答案 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
我希望这对您有帮助。
(此外,我可以假设您在返回码中使用的是工具提示格式程序吗?)