112 votes

Vérifier si deux dates ont les mêmes informations de date

Comment puis-je vérifier si deux objets de date différents ont les mêmes informations de date (ayant le même jour, mois, année ...) ? J'ai essayé "==", "==" et .equals mais aucun ne semble fonctionner.

176voto

Felix Kling Points 247451

Vous pouvez utiliser valueOf() ou getTime() :

a = new Date(1995,11,17);
b = new Date(1995,11,17);

a.getTime() === b.getTime() // prints true

70voto

Yashua Points 3482

Si vous êtes seulement intéressé à vérifier si les dates se produisent le même jour indépendamment de l'heure, alors vous pouvez utiliser la méthode toDateString() pour comparer. Cette méthode renvoie uniquement la date sans l'heure :

var start = new Date('2015-01-28T10:00:00Z');
var end = new Date('2015-01-28T18:00:00Z');

if (start.toDateString() === end.toDateString()) {
  // Same day - maybe different times
} else {
  // Different day
}

48voto

Incidently Points 1321

J'ai utilisé ce code :

Date.prototype.isSameDateAs = function(pDate) {
  return (
    this.getFullYear() === pDate.getFullYear() &&
    this.getMonth() === pDate.getMonth() &&
    this.getDate() === pDate.getDate()
  );
}

Ensuite, vous l'appelez simplement comme : if (aDate.isSameDateAs(otherDate)) { ... }

17voto

d2vid Points 585

Type convertir en entiers :

a = new Date(1995,11,17);
b = new Date(1995,11,17);
+a === +b;  //true

7voto

jim tollan Points 12995

Hellnar,

vous pourriez essayer (pardonnez le nom de la fonction :) - modifié par la valeur de felixof, plutôt que getTime)

function isEqual(startDate, endDate) {
    return endDate.valueOf() == startDate.valueOf();
}

utilisation :

if(isEqual(date1, date2)){
   // do something
}

Ça pourrait t'aider à t'y retrouver.

voir aussi :

« http://www.java2s.com/Tutorial/Jav_0240__Date/DatevalueOf.htm »

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X