Maison > Questions et réponses > le corps du texte
P粉7941776592023-08-04 15:33:36
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).
P粉9905682832023-08-04 12:15:10
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.