2013-02-03 10 views
5

私のサーバーからのJSON応答で、UTC Unixのタイムスタンプが数秒で得られます。私はそれをJavaScriptの日付に解析しています。これはチャートで使用されます(ユーザーのロケールの時刻を表示します)。Date.getTimezoneOffsetが反転していますか?

私は明らかに私は、ブラウザのロケールに(UTCに)持っているタイムスタンプを同軸する必要があるので、私は、ブラウザのロケールで新しいDateを作成する関数を書いて、中に「分単位でオフセット」を取得し、それにgetTimezoneOffset()を呼び出します現在のロケールはthe MDNであり、両方をミリ秒に変換し、その合計を返します。今、私は、ユーザーのロケールにJavaScriptに優しいUnixタイムスタンプを持っています。

しかし、私はしません。

このように、(new Date()).getTimezoneOffset()は、GMT-5では300、GMT + 2では-120を返します。オフセットが反転しているのはなぜですか?私は、オフセットがタイムゾーンの兆候と一致することを期待していました。つまり、GMT-5には300分を、GMT + 2には120分を加算する必要があります。代わりに、返される値を引く必要があります。getTimezoneOffset

+0

説明を参照する[ここ](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset).'Thisは、オフセットが正であることを意味しますローカルタイムゾーンはUTCよりも遅く、先行すれば否定的です。」 – Jashwant

+0

実際にクリックすると...... * facepalm * –

答えて

5

いいえ。

spec (§15.9.5.26)は言う:

15.9.5.26 Date.prototype.getTimezoneOffset()

は数分で現地時間とUTCの時刻の差を返します。

  1. tをこの時間値とします。
  2. tがNaNの場合、NaNを返します。
  3. 返信(t - LocalTime(t))/ msPerMinute
+0

だから、基本的にはRTFMの問題です。たぶんカフェインが少なすぎるかもしれません。少なくとも、それは文書化されています:D。ありがとう –

関連する問題