Highcharts - 工具提示上的xAxis标签差异日期

时间:2014-08-11 04:16:54

标签: highcharts

我在使用HighCharts xAxis标签时遇到问题。工具提示上xAxis标签差异的日期,并且在刻度点上有2个gridLine。我的json数据有问题,但我不知道为什么。

这是我的代码http://jsfiddle.net/jevgzgjx/1/

我的数据是带有时间戳的json数组:

var json = [[[1362783600000,5691],[1362870000000,6503],[1362956400000,15574],[1363042800000,16211],[1363129200000,16427],[1363215600000,16486],[1363302000000,14737],[1363388400000,5838],[1363474800000,5542],[1363561200000,15560],[1363647600000,18940]],[[1362783600000,4346],[1362870000000,4112],[1362956400000,11356],[1363042800000,11876],[1363129200000,11966],[1363215600000,12086],[1363302000000,10916],[1363388400000,4507],[1363474800000,4202],[1363561200000,11523],[1363647600000,14431]]];

1 个答案:

答案 0 :(得分:4)

这里的问题是你的时间戳都是23:00(晚上11点)。因此,该点被略微绘制在每个网格线的左侧(因为网格线是每天00:00)。它还会导致每个点的工具提示显示前一天,因为该点实际上不是在网格线显示的那一天,而是在此之前一小时。

您可以通过修改dateTimeLabelFormats来查看此问题,以便工时提示中显示小时数,如下所示(see this JSFiddle):

dateTimeLabelFormats: {
    day:"%A, %b %e, %Y, %H:%M"
}

我不确定问题的根源,但可以通过向所有时间戳添加3600000(一小时,以毫秒为单位)来解决问题。问题可能是时区相关,因为默认情况下Highcharts中的时间戳被视为UTC,因此请考虑以UTC格式获取时间戳。

如果使用Date对象,则可以在获取时间戳之前指定时区。默认情况下,您可以使用global.useUTC: falseAPI)禁用UTC,但是根据您查看图表的位置,您可能会遇到不同结果的风险。