7

GMTタイムゾーンオフセット計算で予期しない結果が発生しています。

ExtJS日付クラスを使用して、GMT0でサーバーから現在GMT+8であるユーザーのローカルマシンにメッセージが到着する時間を計算しています。

オフセットを計算し、それを秒単位のタイムスタンプに追加すると、次の計算を使用して、好きなようにフォーマットする文字列を取得できると思いました。

var d = new Date((stamp + offset) * 1000);

スタンプは、オフセットと同様に秒単位の日付/時刻です。

これは私の場所の現在の日付と時刻を返しますが、プラス8時間です。オフセットを追加しない場合、時間は正しいです。

new Date()メソッドは自動的に現地時間の日付/時刻を教えてくれますか?

4

3 に答える 3

7

1000 分の 1 秒を含む UNIX タイムスタンプを挿入するだけです。UNIXタイムスタンプはUTC 0である必要があり、javascriptはクライアントコンピューターのローカルタイムゾーンを検索して計算します。

このリンクの後ろにあるように、ローカル タイム オフセットなしで時刻を取得できる UTC メソッドがいくつかあります。多分これはあなたが探しているものかもしれません(タイムゾーンを自分で設定したい場合)。

編集:

new Date().getTimezoneOffset()ローカル タイムゾーンと utc の違いが表示されますが、utc メソッドの使用を検討する必要があります。

于 2013-01-03T07:32:34.853 に答える
1

見た目から、stampタイムゾーンオフセットを含む現地時間です。JavaScript はサーバーのタイムゾーンを認識しません。これは (主に) クライアント側の言語です。

于 2013-01-03T07:20:04.403 に答える