Comparer les objets Date JavaScript
P粉724737511
2023-08-03 17:28:16
<p>Lors de la comparaison d'objets date en JavaScript, j'ai constaté qu'il ne renvoie pas vrai même lors de la comparaison de dates identiques. </p>
<pre class="brush:php;toolbar:false;">var startDate1 = new Date("02/10/2012");
var startDate2 = nouvelle Date("01/10/2012");
var startDate3 = nouvelle Date("01/10/2012");
alert(startDate1>startDate2); // vrai
alert(startDate2==startDate3); //false</pre>
<p>Comment puis-je comparer ces dates en termes d'égalité ? Je souhaite utiliser un objet Date JavaScript natif plutôt qu'une bibliothèque tierce, car il n'est pas approprié d'utiliser une bibliothèque JavaScript tierce uniquement pour comparer des dates. </p>
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 :
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 :
Si vous souhaitez le convertir en nombre de manière plus explicite, vous pouvez utiliser l'une des méthodes suivantes :
o ou
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.