2

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

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

那么我们如何将时区设置为 ZingChart 显示正确的时间呢?如果那天有夏令时,我应该如何纠正它。

JSON 脚本

4

2 回答 2

5

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

文档中的示例说:

...例如,要将时区设置为太平洋时间,您将添加:"timezone":-8.

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

这是一个常见的错误。请参阅时区标签 wiki中的“时区!= 偏移量” 。我对 ZingChart 开发人员的建议是:

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

  2. 您还应该支持命名时区标识符,例如"America/Los_Angeles". 为了使它们工作,您需要提供开发人员可以挂钩的功能。不要尝试直接实现该功能,因为已经有几个库可用于此。例如,开发人员可能会通过编写如下代码将 ZingChart 与 moment-timezone 结合起来:

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

    当时区为字符串时,ZingChart 将调用此函数,并将结果偏移量应用于特定数据点。

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

于 2015-12-01T05:49:00.733 回答
0

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

于 2015-12-16T22:44:56.710 回答