J'ai besoin de savoir si deux dates sélectionnées par l'utilisateur sont les mêmes en Javascript. Les dates sont passées à cette fonction dans une chaîne ("xx/xx/xxxx"). C'est toute la granularité dont j'ai besoin.
Voici mon code:
var valid = true;
var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());
alert(d1+"\n"+d2);
if(d1 > d2) {
alert("Your check out date must be after your check in date.");
valid = false;
} else if(d1 == d2) {
alert("You cannot check out on the same day you check in.");
valid = false;
}
L'alerte javascript après la conversion des dates en objets ressemble à ceci:
Mar 25 janvier 2011 00:00:00 GMT-0800 (heure normale du Pacifique)
Mar 25 janvier 2011 00:00:00 GMT-0800 (heure normale du Pacifique)
Le test pour déterminer si la date 1 est supérieure à la date 2 fonctionne. Mais l'utilisation des opérateurs == ou === ne change pas valide en faux.
Utilisez la méthode getTime()
. Il vérifiera la valeur numérique de la date et fonctionnera à la fois pour les contrôles supérieur/inférieur à ainsi que pour les contrôles égaux.
ÉDITER:
if (d1.getTime() === d2.getTime())
Si vous ne voulez pas appeler getTime()
essayez simplement ceci:
(a >= b && a <= b)
var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());
utiliser deux méthodes simples pour vérifier l'égalité
if( d1.toString() === d2.toString())
if( +d1 === +d2)