1

2つの日付を比較するために、文字列からjavascriptのDateオブジェクトへの変換を行っています。

これは私が持っているコードの例です:

 var date1 = new Date(dateArrray1[2], dateArrray1[1], dateArrray1[0], 0, 0, 0, 0);
 var date2 = new Date(dateArrray2[2], dateArrray2[1], dateArrray2[0], 0, 0, 0, 0);

私の問題は、これらの2つの日付オブジェクトで検証を行っているときに、特定の日付のgetTime関数で同じ結果が得られたという事実に基づいています。

var date1 = new Date(2012, 01, 30, 12, 0, 0, 0).getTime()
var date2 = new Date(2012, 02, 01, 12, 0, 0, 0).getTime()

通常、date1ダンの値はdate2異なるはずです。しかし、驚きです!これら2つのオブジェクトの値は同じです(実際の値はです1330621200000)。

誰かが私と同じ問題を抱えていますか?

4

2 に答える 2

3

月フィールドの範囲は 1 ~ 12 ではなく、0 ~ 11 です

この場合、2 月 30 日と 3 月 1 日を要求しています。

今年の 2 月は 29 日なので、2 月 30 日は (数学的に) 3 月 1 日と同じです。

于 2012-01-27T18:28:16.823 に答える
3

Javascript の日付は、0 から始まる月を使用します。2 月 30日
などの無効な日付を渡すと、その日付が実際に何であるかを判断します。 したがって、うるう年の 2 月 30 日は 3 月 1 日と同じです

于 2012-01-27T18:28:17.390 に答える