【问题标题】:Highcharts showing wrong time based on timezoneHighcharts 根据时区显示错误时间
【发布时间】:2016-06-26 06:25:36
【问题描述】:

我正在通过 PHP 引入如下所示的数据:

Sun Jun 26 02:00:01 EDT 2016

变成这个变量:

    $arr_dates[] = date("m/d/Y H:i", strtotime($datestr, time()));

并在 Highcharts 中使用:

        series: [{
            name: '# users online',
            data: [<?php echo "\n"; foreach ( $arr_num_users as $i ) { echo "[Date.parse('".$arr_dates[$ct]."'),".$i."],\n";$ct++; } echo "\n]"; ?>
        }

所以当我(EDT 时区)查看它时,图表显示正确,时间显示为 GMT+0。

但其他人使用不同的时区,时间已经关闭。所以 PDT 中的某个人会看到一个倾斜 3 小时的图表,这是不正确的。它应该始终是一个固定的时间,或者至少是准确的。

我该如何解决这个问题? setUTC 似乎没有帮助。

    Highcharts.setOptions({
       global: {
            useUTC: true
       }
    });
    $('#container').highcharts({
        chart: {
            zoomType: 'x'
        },
                    rangeSelector : {
                            selected : 1
                    },
.....

我也试过没有任何setOptions,没有任何变化。

这是在 Highcharts v3.0.10 下

需要明确的是,图表上的时间会根据用户的时区而变化。我不希望这种情况发生。

您可以在此处查看问题:http://observit.org/rffxiv.php(切换到正确显示的时区的 EDT,然后切换到其他内容并刷新;将显示问题)

【问题讨论】:

  • 我相信你需要知道用户的时区。据我所知,您需要 javascript 或可能的 ajax。从未尝试过获取用户时区,所以我不知道。
  • @Andreas 我不记得 Highcharts 提到过,很奇怪。
  • 我不是在谈论特定的 highcharts,我是在谈论一般的网络开发。
  • @Andreas 好吧,我真的不想知道他们的时区,因为我希望日期时区是静态的。我不希望它根据他们的时区而改变,但它正在这样做,我不知道为什么。
  • 在那种情况下我误解了你。对不起

标签: php highcharts


【解决方案1】:

这对我有用。

Highcharts.setOptions({
    global: {
        timezoneOffset: 5 * 60 //EST offset
    }
});

【讨论】:

  • 那行不通。图表上的时间仍会根据客户端时区而变化。我不希望这种情况发生。
猜你喜欢
  • 1970-01-01
  • 2019-05-09
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
相关资源
最近更新 更多