1

Cometを使用してデータをWebクライアントに送信するWebサイトを開発しています。私のアプリケーションは非常に時間に敏感で、毎秒追加されるポイントを表示するグラフがあります。

WebアプリケーションはComet駆動型であるため、クライアントが日付を処理する必要は実際にはありません。情報を表示するためにサーバーのタイムスタンプのみを使用する必要があります。つまり、グラフにプロットされたポイントは、ユーザーのタイムゾーンに関係なく、サーバーのタイムスタンプをツールチップに表示する必要があります。

私の最善のアプローチは、RESTを使用してサーバーのタイムスタンプを取得することだと思います。次に、サーバーとクライアントの時間の間のタイムゾーンオフセットを測定し、差を加算/差し引いて、表示目的でクライアントのタイムスタンプとして使用します。

new Date()サーバーのタイムスタンプをローカルとして持つようにするデフォルトの動作をオーバーライドする方法はありますか?

どうもありがとう。

4

2 に答える 2

1

Dateコンストラクターをオーバーライドして現在の時間とタイムゾーンを設定できるライブラリTimeShift.jsを作成しました。テスト目的で作成しましたが、他の用途にも使用できます。

現在のライブラリの警告を必ず確認してください。現在、GMTへの固定オフセットのみをサポートしているため、DSTの変更はサポートされていません。

于 2013-08-25T19:18:16.800 に答える
0

再定義するだけで、正常に機能するはずです。

if(Date) {
    try{
        Date = null;
        Date = function() {
            console.log("The more things change, the more they stay the same!");
        }
        Date();
    } catch(exeption) {
        console.log("Couldn't override Date object.");
    }
}
于 2012-06-04T18:30:40.023 に答える