2009-07-28 5 views
5

オペレーティングシステムからのGMT時間オフセットとJavascriptのDate.getTimezoneOffset()からのGMT時間オフセットを比較しようとしています。問題は、ウィンドウがEDSTに基づいてオフセットを与える一方、javascriptはEDTに基づいてオフセットを与えることです。この2つには1時間の違いがあります。誰かがJavascriptをWindowsのようなStandard Timesを使う方法を知っていますか?ありがとうございました。JavascriptのDate.getTimezoneOffset()

+0

どのようにOSからオフセットを取得していますか? – Rojo

答えて

4

夏時間が有効でないことを知っている日にgetTimezoneOffsetを呼び出してみませんか?

javascript:alert(new Date('1/1/2009').getTimezoneOffset()) 

これは300(5時間)を与えます。

+0

助けてくれてありがとう! – SquidScareMe

+0

これはFireFoxでは動作しません。 –

12

最初の返信はすべてのケースの半分でしか機能しないため、平均して動作しないことに注意してください。

最初の1月は、北半球でのみ夏時間には存在しないことが知られています。しかし、それは世界の半分に過ぎません。

var jan = new Date(2009, 0, 1, 2, 0, 0), jul = new Date(2009, 6, 1, 2, 0, 0); 
var offset = (jan.getTime() % 24 * 60 * 60 * 1000) > 
      (jul.getTime() % 24 * 60 * 60 * 1000) 
      ?jan.getTimezoneOffset() : jul.getTimezoneOffset(); 
+2

どのグループも疎外されているわけではありませんが、北半球の「世界の半分」は世界人口の90%を占めています。 – hyperslug

+1

@hyperslug - SquidScareMeが北半球の解決策にすぎない場合、それは彼にとっては大丈夫です。しかし、SO *はベスト*ソリューションを提供すべきであり、Steffenのソリューションは技術的により正確です(最高の正しいタイプです)。 – Andrew

+0

この作業を行うには、まず最初に今月を取得してから、6(7月)に表示されている場所に変更します。 – MPaulo