0
   alert(date2);//Sat Oct 29 0112 00:00:00 GMT+0100 (GMT Daylight Time) 
   alert(date1);//Fri Oct 12 2012 00:00:00 GMT+0100 (GMT Daylight Time)

if (date1.getTime()<date2.getTime()) {
     alert('your date can not be earlier than today.');
}

私の質問は、なぜアラートが表示されないのですか? 何かがおかしい?

編集:

var today = new Date();
date2 = new Date(today.getYear(), today.getMonth(), today.getDate());

なぜこれは年を0112と表示するのですか??

4

5 に答える 5

3

日付 1 が 2012 年で、日付 2 が 112 年である場合、日付 1 が日付 2 より劣っているかどうかをテストします。2012 年は 112 年より上なので、ここでは何も問題はありません

于 2012-10-29T13:25:44.933 に答える
3

最初に、両方の日付を月、日、年の異なる値として分割します。月の配列を使用して、月の数を調べることができます。それで:

var date1 = new Date;
var date2 = new Date;
date1.setDate(29);
date1.setMonth(10);
date1.setFullYear(2012);

date2.setDate(12);
date2.setMonth(10);
date2.setFullYear(2012);

if(date1>date2)
alert('Date1 is greater');
else
alert('Date2 is greater');
于 2012-10-29T13:31:44.490 に答える
2

getFullYear()ではなく、使用してくださいgetYear()

一部の実装では、getYear() は 1900 年からの年数を返します。これが、年として 112 を取得する理由です。

于 2012-10-29T13:33:49.867 に答える
0

日付 1 は 2012 年で、日付 2 は 0112 であるため、日付 2 は日付 1 より前であるため、アラートが表示されないのはなぜですか。

于 2012-10-29T13:26:27.823 に答える
0

date2 の年は 0112 で、date1 の年は 2012

于 2012-10-29T13:26:51.373 に答える