2

ZingChart を使用して、データをグラフとして表示します。char では、サーバーから取得した時刻に続くデータを示しています。ZingChart は、クライアント時間に従うようにデフォルトで設定されています。

チャートでタイムゾーンを整数値としてのみ設定できることがわかりました。ただし、一部のタイムゾーンは UTC+10:30、UTC+04:30...

では、正確な時間を表示する ZingChart にタイムゾーンを設定するにはどうすればよいでしょうか? また、その日にサマータイムがある場合、どうすればそれを修正できますか?

JSON スクリプト

4

2 に答える 2

5

残念ながら、ZingChart は 1 時間単位のタイム ゾーン オフセットのみをサポートしているようです。これは、固定小数時間オフセットを持つタイム ゾーンを考慮していないだけでなく、夏時間を使用するタイム ゾーンも適切に考慮していません。

ドキュメントの例は次のように述べています。

... たとえば、タイムゾーンを太平洋時間に設定するには、次を追加します: "timezone":-8.

太平洋時間は標準時の UTC-8 のみであるため、これは正しくありません。夏時間の場合は UTC-7 を使用します。

これはよくある間違いです。timezone tag wiki の「Time Zone != Offset」を参照してください。ZingChart 開発者への私の推奨事項は次のとおりです。

  1. サポートする場所では、またはtimezone:-8などの分数の時間オフセットもサポートする必要があります。timezone:5.5timezone:8.75

  2. などの名前付きタイム ゾーン識別子もサポートする必要があります"America/Los_Angeles"。それらを機能させるには、開発者がフックできる関数を提供する必要があります。関数を直接実装しようとしないでください。これには既にいくつかのライブラリが利用可能です。たとえば、開発者は次のように記述して、ZingChart と moment-timezone を組み合わせることができます。

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

    timezone が文字列の場合、ZingChart はこの関数を呼び出し、結果のオフセットを特定のデータ ポイントに適用します。

ZingChart のサポートがなければ、タイム ゾーンを適切にサポートするためにできることはほとんどありません。

于 2015-12-01T05:49:00.733 に答える