【问题标题】:How to set time zone as float in Zing Chart?如何在 Zingchart 中将时区设置为浮点数?
【发布时间】:2015-11-27 12:21:12
【问题描述】:

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

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

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

JSON scripts

【问题讨论】:

  • 你能展示你如何配置图表的 json 和 javascript 吗?您是使用 ZingChart 来使用 refresh 属性处理来自服务器的查询,还是单独处理?
  • 感谢您的关注!
  • 在我看来,UTC +1 的服务器:windhoek 和 UTC +7 的客户端:河内和夏令时开始......下面是 JSON 脚本:“graphset”:[{“ scale-x":{ "max-labels":7, "zooming":true, "min-value":1445884200000, "step":3600000, "transform":{ "type":"date", "all" :"%M %d,%Y
    %h:%i %A", "guide":{ "visible":false }, "item":{ "visible":false } } }, }跨度>
  • @mike-schultz 请在下面查看我的回答。谢谢。

标签: charts timezone dst zingchart


【解决方案1】:

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

in the documentation 的例子说:

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

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

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

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

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

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

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

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

【讨论】:

  • 感谢您的回答!我认为你是对的,但不幸的是,ZingChart 仅支持小时偏移量为整数。我使用表达式: (local - utctime) / 3600 来获取时区。但是如果它有夏令时,我会遇到麻烦。虽然 C++ 不支持获取时区。
  • 谢谢马特,我们一定会努力支持小数小时,并想出一种更简单的方法来支持时区,以便最终用户更容易。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    相关资源
    最近更新 更多