21

Possible Duplicate:
Compare 2 dates with JavaScript

I haven't done much JavaScript. I am trying to compare two dates. From jconsole:

a = ["01/01/2010","01/02/2010","01/03/2010"]

date1 = new Date('01/02/2010')
Sat Jan 02 2010 00:00:00 GMT-0800 (PST)

date2 = new Date(a[1])
Sat Jan 02 2010 00:00:00 GMT-0800 (PST)

date1 == date2
false

Can someone tell me why this does not match?

Community
  • 1
  • 1
user290870
  • 1,591
  • 3
  • 19
  • 27
  • 7
    It is interesting to note that both `>=` and `<=` return `true` in this case, but `==` gives `false`. Another JavaScript miracle. – Kobi May 02 '10 at 05:37

1 Answers1

38

Your comparison is returning false because date1 and date2 are simply references to different objects, and you are actually comparing these references.

To do a proper comparison of the date values, you can use the getTime() method as follows:

date1.getTime() === date2.getTime();   // returns true
Daniel Vassallo
  • 337,827
  • 72
  • 505
  • 443
  • 1
    okay thanks. So '===' also compares type. Do '<=' and '>=' also compare type? – user290870 May 02 '10 at 05:44
  • 1
    @ash34: Yes it is generally recommended to use `===` instead of `==`. You may also want to check out this reference: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators. First of all note the part where it says: "Two objects are strictly equal if they refer to the same Object."... Also check the description of the different comparison operators. – Daniel Vassallo May 02 '10 at 05:47