2

flot プロット パッケージを使用するプロジェクトがあり、x 軸 (時間) がローカライズされた時間で表示される以外はすべて機能していますが、ローカライズされていない状態で表示したいです。

例: flot に供給されるデータの時刻は午前 7 時 45 分 (サーバーからは Unix エポックからのミリ秒単位) ですが、x 軸は午前 12 時 45 分と表示されます (私は MST-700 にいるので意味があります)。

そのコードをステップスルーして、送信されているデータが正しいことを確認し、それが正しいことを確認しました。指定された日付を出力するように指示したため、JavaScript が正しい時刻を持っていることがわかりました。タイム ゾーンを -1200 に設定すると、午前 7 時 45 分のデータは午後 20 時 45 分と表示されるため、問題はタイム ゾーンに関係していると確信しています。ここに私のプロット構成があります:

var plotOptions = {
            series: { shadowSize: 0 }, // drawing is faster without shadows
            yaxis: { ticks: 5 },
            xaxis: { position: "bottom", mix: minX, max: maxX, mode: "time", timeformat: "%y/%m/%d %H:%M:%S"},
            yaxes: yAxes
        };

ここで、maxX はサーバーから読み取った最新の時刻 (ミリ秒単位) であり、minX は maxX (ミリ秒単位) よりも数分少ない数です。

タイムゾーンをnullに設定しようとしましたが、timeZoneOffsetと同様に効果がないようです。指定されたタイムゾーンを加算/減算できないため、日付と時刻はそのままにしておく必要があります。

TL;DR ローカライズなしで (タイムゾーンなしで) flot に時間を表示させるにはどうすればよいですか?

どんな助けでも大歓迎です:)


編集 1: 時間ライブラリ (jquery.flot.time.js) を扱ういくつかのテストを行ったところ、 tickGenerator および tickFormatter 関数が呼び出されていないことがわかりました。計算した日付を表示するアラートを両方の関数内に配置しましたが、アラートを受け取ることはありません。

4

2 に答える 2

3

API ドキュメントを見ましたか?

https://github.com/flot/flot/blob/master/API.md#customizing-the-axes

timezone:"MST-700" など、時間の書式設定に含めるライブラリに応じて渡すことができるはずです。同じページで「タイムゾーン」を検索すると、さらに多くの情報が得られるはずです。

于 2013-02-20T16:05:42.260 に答える
1

なぜこれが機能したのか正確にはわかりませんが、自分で問題を解決することができました。jquery.flot.time.js ファイルを取り出したところ、x 軸が正しく表示されるようになりました。

ライブラリが私のタイムゾーン オプションを無視しているように感じます。

于 2013-02-20T16:40:05.147 に答える