1

JavaScriptの日付比較に問題があります。10月31日と11月1日のDateオブジェクトを作成しましたが、それぞれのgetTime()は同じ数値を返し、大なり記号/小なり記号も日付が等しいと見なします。これが私のコードです:

d1 = new Date(2012, 10, 31, 0, 0, 0, 0);
d2 = new Date(2012, 11, 1, 0, 0, 0, 0);
document.write(d1.getTime() + "<br />");
document.write(d2.getTime() + "<br />");
document.write((d1 < d2) + "<br />");
document.write((d1 > d2) + "<br />");

そしてここに出力があります:

1354320000000
1354320000000
false
false

同じコードが他の月末の前後で正常に機能します。問題を引き起こすのはこれらの2つの日付だけのようです。

助けていただければ幸いです。

4

1 に答える 1

6

11月(10​​)は31日がないため、12月(11)1日にラップされます。

new Date(2012, 10, 31, 0, 0, 0, 0)
//Sat Dec 01 2012 00:00:00 GMT+0200 (FLE Standard Time)

//more wrapping:
new Date(2012, 10, 35, 0, 0, 0, 0)
//Wed Dec 05 2012 00:00:00 GMT+0200 (FLE Standard Time)
于 2012-11-02T20:50:55.670 に答える