Comment comparer deux dates en JavaScript

  1. Comparaison de deux dates en JavaScript avec des opérateurs de comparaison
  2. JavaScript compare deux dates avec la méthode getTime()
  3. Comparaison de deux dates en JavaScript avec la méthode valueOf()
  4. JavaScript compare deux dates avec la fonction Number()
  5. JavaScript compare deux dates avec l’opérateur Plus Unary +

JavaScript dispose du système de comparaison de dates intégré, ce qui rend la comparaison si facile.

Ce tutoriel présente différentes méthodes de comparaison de deux dates en JavaScript. Chaque méthode comporte un exemple de code, que vous pouvez exécuter sur votre propre machine.

Comparaison de deux dates en JavaScript avec des opérateurs de comparaison

Nous pouvons comparer directement deux dates en JavaScript avec des opérateurs de comparaison comme <, <=, > et >=.

var date1 = new Date('2020-10-23');
var date2 = new Date('2020-10-22');

console.log(date1 > date2);
console.log(date1 >= date2);
console.log(date1 < date2);
console.log(date1 <= date2);

Production:

true
true
false
false
Warning

Nous ne pouvons pas utiliser les opérateurs d’égalité pour comparer les objets Date directement en JavaScript. Parce que deux objets différents en JavaScript ne sont jamais égaux au niveau strict et abstrait. Voir l’exemple ci-dessous.

let date1 = new Date();
let date2 = new Date(date1);

console.log(date1 == date2);
console.log(date1 === date2);
console.log(date1 != date2);
console.log(date1 !== date2);

Production:

false
false
true
true

Nous pouvons vérifier l’égalité de deux dates avec la méthode suivante.

JavaScript compare deux dates avec la méthode getTime()

Nous convertissons deux dates en valeurs numériques correspondant à leur heure en utilisant la méthode getTime(), et nous pouvons alors comparer deux d’entre elles directement.

let date1 = new Date(2019, 08, 07, 11, 45, 55); 
let date2 = new Date(2019, 08, 03, 11, 45, 55); 
if (date1.getTime() < date2.getTime()) 
  document.write("date1 is lesser than date2"); 
else if (date1.getTime() > date2.getTime()) 
  document.write("date1 is greater than date2"); 
else
  document.write("both are equal"); 

Production:

date1 is lesser than date2

La méthode getTime() pourrait vérifier l’égalité de deux dates en JavaScript.

let date1 = new Date();
let date2 = new Date(date1);

if (date1.getTime() == date2.getTime())
	document.write("Two dates are equal."); 

if (date1.getTime() === date2.getTime())
	document.write("Two dates are equal."); 

Production:

Two dates are equal.Two dates are equal.

Comparaison de deux dates en JavaScript avec la méthode valueOf()

La méthode valueOf() de l’objet Date fonctionne de manière similaire à la méthode getTime(). Elle convertit l’objet Date en valeur numérique.

let date1 = new Date(2019, 08, 07, 11, 45, 55); 
let date2 = new Date(2019, 08, 07, 11, 45, 55); 
if (date1.valueOf() < date2.valueOf()) 
  document.write("date1 is lesser than date2"); 
else if (date1.valueOf() > date2.valueOf()) 
  document.write("date1 is greater than date2"); 
else if(date1.valueOf() === date2.valueOf())
  document.write("both are equal"); 

console.log(date1.valueOf() === date2.valueOf())

Les deux méthodes getTime() et valueOf() retourner le nombre de millisecondes depuis le 1er janvier 1970, 00:00 UTC.

JavaScript compare deux dates avec la fonction Number()

La fonction Number() convertit l’objet Date en un nombre représentant la valeur de l’objet en Java. Elle retourne NaN si l’objet ne peut pas être converti en un nombre légal.

let date1 = new Date(2019, 08, 07, 11, 45, 55); 
let date2 = new Date(2019, 08, 07, 11, 45, 55); 

console.log(Number(date1) === Number(date2)) 
console.log(Number(date1) == Number(date2) )
console.log(Number(date1) < Number(date2)) 
console.log(Number(date1) > Number(date2) )

JavaScript compare deux dates avec l’opérateur Plus Unary +

Un opérateur unaire prend un seul argument et opère sur cet argument ou opérande. JavaScript possède de nombreux opérateurs unaires. Nous utilisons ici l’opérateur unaire plus +, qui tente de convertir l’argument en nombre.

let date1 = new Date(2019, 08, 07, 11, 45, 55); 
let date2 = new Date(2019, 08, 07, 11, 45, 55); 

console.log(+date1 === +date2) 
console.log(+date1 == +date2) 
console.log(+date1 < +date2) 
console.log(+date1 > +date2)

La fonction Number et l’opérateur unaire + appellent tous deux les méthodes valueOf() en coulisse.

Article connexe - JavaScript Datetime