Confronta due date in JavaScript

Kirill Ibrahim 12 ottobre 2023
  1. JavaScript confronta due date con operatori di confronto
  2. JavaScript confronta due date con il metodo getTime()
  3. JavaScript confronta due date con il metodo valueOf()
  4. JavaScript confronta due date con la funzione Number()
  5. JavaScript Confronta due date con l’operatore unario Plus +
Confronta due date in JavaScript

JavaScript ha il sistema di confronto incorporato per le date, che rende così facile fare il confronto.

Questo tutorial introduce diversi metodi per confrontare due date in JavaScript. Ogni metodo avrà un esempio di codici, che puoi eseguire sulla tua macchina.

JavaScript confronta due date con operatori di confronto

Possiamo confrontare direttamente due date in JavaScript con operatori di confronto come <, <=, > e >=.

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);

Produzione:

true
true
false
false
Warning
Non possiamo utilizzare gli operatori di uguaglianza per confrontare gli oggetti Date direttamente in JavaScript. Perché due oggetti diversi in JavaScript non sono mai uguali sia a livello rigoroso che astratto. Vedi l’esempio sotto.
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);

Produzione:

false
false
true
true

Possiamo verificare l’uguaglianza di due date con il seguente metodo.

JavaScript confronta due date con il metodo getTime()

Convertiamo due date in valori numerici corrispondenti alla loro ora utilizzando il metodo getTime(), quindi possiamo confrontarne due direttamente.

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');

Produzione:

date1 is lesser than date2

Il metodo getTime() potrebbe verificare l’uguaglianza di due date in 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.');

Produzione:

Two dates are equal.Two dates are equal.

JavaScript confronta due date con il metodo valueOf()

Il metodo valueOf() dell’oggetto Date funziona in modo simile al metodo getTime(). Converte l’oggetto Date in valore numerico.

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())

Sia getTime() che valueOf() restituiscono il numero di millisecondi dal 1 gennaio 1970, 00:00 UTC.

JavaScript confronta due date con la funzione Number()

La funzione Number() converte l’oggetto Date in un numero che rappresenta il valore dell’oggetto in Java. Restituisce NaN se l’oggetto non può essere convertito in un numero legale.

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 Confronta due date con l’operatore unario Plus +

Un operatore unario accetta un singolo argomento e opera su questo argomento o operando. JavaScript ha molti operatori unari. Qui usiamo l’operatore unario più +, che cerca di convertire l’argomento in un numero.

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)

Sia la funzione Number che l’operatore unario + chiamano i metodi valueOf() dietro le quinte.

Articolo correlato - JavaScript DateTime