Hallo zusammen,
Ich bastle mich zur Zeit durch jQuery und Knockout, und bin beim Vergleichen von Datumswerten gestolpert.
Und zwar hab ich zwei Knockout Bindings auf Datumswerte, und beide haben den gleichen Wert.
Im Chrome Debugger hab ich folgende Variablen und Werte stehen:
this.date1(): Fri Oct 25 2013 00:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
this.date2(): Fri Oct 25 2013 00:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
this.date1().toString(): "Fri Oct 25 2013 00:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)"
this.date2().toString(): "Fri Oct 25 2013 00:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)"
this.date1().getTime(): 1382652000000
this.date2().getTime(): 1382652000000
Wenn ich this.date1() == this.date2() abfrage, erhalte ich FALSE.
Wenn ich this.date1().toString() == this.date2().toString() abfrage, erhalte ich TRUE.
Wenn ich this.date1().getTime() == this.date2().getTime() abfrage erhalte ich TRUE
Warum liefert der erste Vergleich FALSE?
Ich lass mir einreden, dass ich mit == Objekte vergleiche, aber ich hab es dann auch mal mit unterschiedlichen Datumswerten funktioniert, und siehe da, es klappt tadellos (einmal 9 Uhr, einmal 10 Uhr):
this.date1(): Fri Oct 25 2013 09:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
this.date2(): Fri Oct 25 2013 10:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
this.date1() < this.date2(): true
this.date1() == this.date2(): false
this.date1() > this.date2(): false
Was habe ich übersehen?
Gruß
DaTom