如何在Zingchart中将时区设置为浮动?

How to set time zone as float in Zing Chart?

我使用 ZingChart 将数据显示为图表。在 char 中,我显示了从服务器获取的时间后的数据。 ZingChart 设置为默认跟随客户端时间。

我发现我们只能将图表中的时区设置为整数值。不过有些时区是UTC+10:30, UTC+04:30...

那么如何设置时区才能让ZingChart显示正确的时间呢?如果那天有夏令时,我应该如何更正。

JSON scripts

不幸的是,ZingChart 似乎只支持整小时时区偏移。这不仅没有考虑到具有固定小数小时偏移量的时区,而且也没有正确考虑使用夏令时的时区。

示例 in the documentation 表示:

... For example, to set the timezone to Pacific Time, you would add: "timezone":-8.

这是不正确的,因为太平洋时间在标准时间只有 UTC-8。在白天时,它使用 UTC-7。

这是一个常见的错误。请参阅 the timezone tag wiki 中的 "Time Zone != Offset"。我对 ZingChart 开发人员的建议是:

  1. 任何你支持 timezone:-8 的地方你也应该支持小数小时偏移,例如 timezone:5.5timezone:8.75.

  2. 您还应该支持命名时区标识符,例如 "America/Los_Angeles"。要使它们工作,您需要提供开发人员可以挂钩的函数。不要试图直接实现该功能,因为有 several libraries already available 用于此。例如,开发人员可能会通过编写如下内容将 ZingChart 与时刻时区结合起来:

    zingchart.fnTZOffset = function(timestamp, timeZone) {
        return moment(timestamp).tz(timeZone).utcOffset() / 60;
    }
    

    ZingChart 将在时区为字符串时调用此函数并将生成的偏移量应用于特定数据点。

没有 ZingChart 的支持,您将无法正确支持时区。

一些 ZingChart 用户过去提到的夏令时问题的另一个解决方案是 MomentJS。 http://momentjs.com