如何在Zing Chart中将时区设置为float?

Tri*_*ham 2 charts timezone dst zingchart

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

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

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

JSON脚本

Mat*_*int 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;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    当时区为字符串时,ZingChart会调用此函数,并将所产生的偏移量应用于特定数据点。

没有ZingChart的支持,您将无能为力地正确支持时区。