【问题标题】:Make Highchart use a specific targeted time zone让 Highchart 使用特定的目标时区
【发布时间】:2013-06-17 09:10:57
【问题描述】:

我正在使用 highchart 沿时间 x 轴显示数据。数据与地球上的特定位置相关,因此我需要让 HightChart 显示该位置的时间。这既不是 UTC 也不是本地浏览器时区。

我已经看到了 UTC 设置,以使用 UTC 或浏览器的本地时间:

Highcharts.setOptions({
    global: { 
        useUTC: true
    }
});

我已经考虑在标签格式化程序中根据我的目标时区应用延迟。但它稍微复杂一些:如何在任何目标国家/地区手动管理夏季/冬季时间切换等

也许有办法在 javascript 日期对象中设置时区以使用带有特定时区的getLocalString()? :/

你知道怎么做吗?

【问题讨论】:

    标签: javascript datetime highcharts timezone


    【解决方案1】:

    可能的解决方案是在 Highcharts 中使用 UTC,然后如果您知道要显示的时区,您就知道已经偏移了。然后只需在所有格式化程序(xAxis、工具提示等)中添加偏移量以显示正确的日期。

    【讨论】:

    • 我到目前为止所做的。不幸的是,它还不够:当 highchart 组件使用浏览器的本地时区时,它会根据浏览器的国家/地区正确管理 DST / 冬季时间切换。此解决方案不会:日期为 DST 时会延迟一小时。如果 highchart 可以很好地管理任何国家/地区的浏览器时区。为什么不增加设置第三方时区的可能性?
    • 因为 Javascript 不支持它自己的(据我所知)。关于 DST,您始终可以尝试检查日期是否为 +/- 1 小时。另一种可能的解决方案是使用类别。
    • 我猜你对第三方时区的 javascript 支持是正确的:stackoverflow.com/questions/2613511/…。我可能必须从我的服务器获取有关 DST 的信息,才能在我的格式化程序中应用 1 小时的延迟......无论如何,谢谢 ;)
    【解决方案2】:

    如果现在不是 UTC 本地浏览器时区,那么只需提供时间戳作为系列的一部分,作为 x 轴标签的第二个数组或 pointStartpointInterval 系列属性结合使用数据是有规律的。

    在任何一种情况下,您似乎都需要进行一些服务器端预处理才能获得正确的时区。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,通过设置 useUTC: false 解决了,然后让服务器发送所需时区的时间戳。在我的情况下,服务器发送“东部时间”数据,所有图表在 x 轴上显示东部时间,但客户端不在东部时间。

      【讨论】:

      • 你能分享一些代码吗?这对我不起作用,但它不应该根据 Highcharts 参考..
      【解决方案4】:

      要使 Highchart 使用特定的目标时区,您可以为图表指定时区。
      参考:https://api.highcharts.com/highcharts/time.timezone
      要了解如何在 ReactJs 中使用此时区选项,请参阅此 URL https://github.com/highcharts/highcharts/issues/8661

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-07
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多