私が理解している限り、HighchartsのデフォルトはUTCです。私はこの投稿の回答で示唆されているようにしようとしました さまざまな日付範囲のHighchartsグラフのX軸ラベル 。私が正しく理解していれば、タイムゾーンをブラウザのタイムゾーンに設定する必要があります。
これをjsFiddleでテストしましたが、useUTC
オプションを切り替えても効果がないようです。
http://jsfiddle.net/looneyp/me3ry/
質問:上記の何が間違っているのですか?タイムゾーンを正しく設定するにはどうすればよいですか?
それはその日の一つです
私は英国にいるので、GMTを利用しているため、UTCのtrueまたはfalseは同じ結果になります。予想される表示時間との不一致は、PHP to unixTimeの解析の問題によるものでした。
Highchartsは3.0.8でタイムゾーンをサポートするようになりました
これで、timezoneOffsetグローバルプロパティを設定できます。 http://api.highcharts.com/highcharts#global.timezoneOffset
あなたがしていることは何も間違っているようには見えません。 This jsFiddle は、グローバルHighchartsオプションでUTCが無効になっているときにx軸のシフトを示します。
Highchartsは、このオプションを最近のバージョンで移動しました。
覚えておくべきことの1つは、シフトがUTCからの現地時間の逆数または負数のように見えるため、たとえばUTC + 2にいる場合、timezoneOffset
は-2 * 60
になります。 、これは完全に直感的ではありません。
Highcharts.setOptions({
time: {
timezoneOffset: -2 * 60
}
});
APIドキュメント: https://api.highcharts.com/highcharts/time.getTimezoneOffset
getfunctionによるタイムゾーンの使用例:getTimezoneOffsetの使用
var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;
このコードをdocument.readyに追加します。UTC時間を供給している場合は、ローカルのタイムゾーンでハイチャートを取得する必要があります
$(document).ready(function () {
Highcharts.setOptions({
global: {
/**
* Use moment-timezone.js to return the timezone offset for individual
* timestamps, used in the X axis labels and the tooltip header.
*/
getTimezoneOffset: function (timestamp) {
d = new Date();
timezoneOffset = d.getTimezoneOffset()
return timezoneOffset;
}
}
});
});