比较javascript日期

Osc*_*Ryz 4 javascript date-comparison

我将日期与这样的事情进行比较:

var dt = new Date();    

dt.setDate("17");               
dt.setMonth(06); 
dt.setYear("2009");

var date = new Date();

console.log("dt(%s) == date(%s) == (%s)", dt, date, (dt == date) );

if( now == dt ) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

字符串值当然是动态的.

在日志中我看到:

dt(Fri Jul 17 2009 18:36:56 GMT-0500 (CST)) == date(Fri Jul 17 2009 18:36:56 GMT-0500 (CST) == (false)
Run Code Online (Sandbox Code Playgroud)

我试过.equals()但它没有用(我正在尝试JavaScript的Java部分:P)

如何比较这些日期以便它们返回true?

Ste*_*son 8

以下代码应该可以解决您的问题:

(myDate.getTime() == myOtherDate.getTime())
Run Code Online (Sandbox Code Playgroud)

问题是当你写:

(myDate == myOtherDate)
Run Code Online (Sandbox Code Playgroud)

......你实际上是在问" myDate指向同一个指向的对象myOtherDate?",而不是" myDatemyOtherDate?相同?".

解决方案是使用getTime获取表示Date对象getTime的数字(并且因为返回自纪元时间以来的毫秒数,此数字将是Date对象的精确表示)然后使用此数字进行比较(比较数字将起作用)如预期的那样).

史蒂夫