Comparez les dates à l'aide de la méthode getTime(), qui renvoie le nombre de millisecondes depuis l'époque (c'est-à-dire un nombre) à des fins de comparaison?:
var startDate1 = new Date("02/10/2012"); var startDate2 = new Date("01/10/2012"); var startDate3 = new Date("01/10/2012"); alert(startDate1.getTime() > startDate2.getTime()); // true alert(startDate2.getTime() == startDate3.getTime()); //true
Envisagez également d'utiliser des nombres année/mois/jour explicites pour construire des objets Date plut?t que de vous fier à des représentations sous forme de cha?ne (voir?: Date.parse()). Et rappelez-vous, les dates en JavaScript sont toujours représentées en utilisant le fuseau horaire du client (navigateur).
En effet, dans le second cas, les objets de date réels sont comparés et les deux objets ne sont jamais égaux. Transformez-les en chiffres?:
alert( +startDate2 == +startDate3 ); // true
Si vous souhaitez le convertir en nombre de manière plus explicite, vous pouvez utiliser l'une des méthodes suivantes :
alert( startDate2.getTime() == startDate3.getTime() ); // true
o ou
alert( Number(startDate2) == Number(startDate3) ); // true
est une référence à l'algorithme de comparaison d'égalité abstraite §11.9.3 de la spécification, en gros, il dit que lors de la comparaison d'objets, cela n'est vrai que si obj1 == obj2 fait référence au même objet, sinon le résultat est faux.