Highcharts上的时区

Timezone on Highcharts

本文关键字:时区 Highcharts      更新时间:2023-09-26

据我所知,Highcharts的默认值是UTC。我试着按照这篇文章中的答案为不同的日期范围做Highcharts图表X轴标签。如果我理解正确,这应该将时区设置为浏览器的时区。

我已经在jsFiddle上测试过了,切换useUTC选项似乎没有效果。

http://jsfiddle.net/looneyp/me3ry/

问题:我上面做错了什么?你如何正确设置时区?

这是的一天

我在英国,所以UTC true或false会给出相同的结果,因为我在GMT。我的预期显示时间之间的差异是由于PHP到unixTime的解析问题。

Highcharts现在支持3.0.8 中的时区

您现在可以设置时区偏移全局属性:http://api.highcharts.com/highcharts#global.timezoneOffset

您所做的一切似乎都没有错。当UTC在全局Highcharts选项中被禁用时,此jsFiddle显示x轴的偏移。

Highcharts在最近的版本中移动了此选项。

需要记住的一件事是,你的偏移似乎与当地时间从UTC开始的位置相反或为负,因此,例如,如果你在UTC+2,那么你的timezoneOffset将是-2 * 60,这并不完全直观:

Highcharts.setOptions({
    time: {
        timezoneOffset: -2 * 60
   }
});

API文件:https://api.highcharts.com/highcharts/time.getTimezoneOffset

下面是一个例子:http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/time/timezoneoffset/

将此代码添加到文档中。准备好后,如果您输入UTC时间,您应该会得到本地时区的高线图

$(document).ready(function () {
  Highcharts.setOptions({
      global: {
          /**
           * Use moment-timezone.js to return the timezone offset for individual
           * timestamps, used in the X axis labels and the tooltip header.
           */
          getTimezoneOffset: function (timestamp) {
              d = new Date();
              timezoneOffset =  d.getTimezoneOffset()
              return timezoneOffset;
          }
      }
  });
});

通过getfunction使用时区示例:使用getTimezoneOffset

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;