1

DateJavaScript でオブジェクトを使用するプログラムがあります。プログラムがすべてのタイム ゾーン (国) で正しく動作していないことに気付きました。

そのため、Windows のタイム ゾーンを変更したところ、特定の日付で奇妙な結果が得られました。

これらのコード行を使用すると、多くのタイムゾーンで同じ結果が得られますが、そのうちの1つ(おそらくいくつか):

console.log( new Date( 2005, 2, 20 ) ); // 2005 Mar 20
console.log( new Date( 2006, 2, 20 ) ); // 2006 Mar 20


タイムゾーン: UTC 00:00(正しい) ここに画像の説明を入力

タイムゾーン: 太平洋 (米国およびカナダ) -08:00(正しい) ここに画像の説明を入力

時間帯: ニューファンドランド-03:30(正しい) ここに画像の説明を入力

タイムゾーン: 中国+08:00(正しい) ここに画像の説明を入力

タイムゾーン: イラン+03:30(不正解! ) ここに画像の説明を入力

( 19 Mar23:00:00Daylight vs. Standardに注意してください)
(同じ結果で Chrome で問題をテストしました)

このソリューションで問題を解決しました:

new Date( Date.UTC(2005, 2, 20) );

しかし、ここで何が起こるか知りたいですか?バグ
はありますか?+03:30デイライトとスタンダードの違いは何ですか?

それは変だ...

4

2 に答える 2

1

日付オブジェクトは問題ありません。一部の国では、春と秋のシーズンにサマータイムを実施して、より多くの夏時間を確保しています。ここをチェックしてください。たまたま、2005 年 3 月 20 日にイランの時間が夏時間の対象となりました。彼らが観察していた時間を正しく表示します (GMT との差が +0430 から +0330 に変わったことに注意してください)。2006 年のその日は通常の時間に従っており、夏時間の対象ではありませんでした。

コメントの「Frits van Campen」リンクを参照してください。

于 2013-02-08T12:17:09.480 に答える