JavaScript Comparar dos fechas

Ultima actualización en
domingo 24º abr. 2022

javascript compare dates

  • La forma más sencilla de comparar diferentes fechas es convertirlas primero en un objeto Date utilizando la construcción new Date().
  • La mayoría de las veces, obtendrá un valor de fecha de una interfaz de usuario de selector de fecha. Eso significa que puede pasar la cadena que representa su fecha a la construcción new Date() para crear el objeto Date.
	const cDate = new Date('April 13, 2010');
const jDate = new Date('April 10, 2010');
	
  • Puede compararlos usando menos que el operador (<) o mayor que (>).
	const cDate = new Date('April 13, 2010');
const jDate = new Date('April 10, 2010');

if (cDate < jDate) {
  console.log('cDate is less than jDate');
}
if (cDate > jDate) {
  console.log('cDate is greater than jDate');
}
	
	cDate is greater than jDate
	

comparar data javascript

Nota : El operador de comparación de igualdad (=== o ==) no funcionará directamente para estos objetos Date

	const cDate = new Date('April 13, 2010');
const jDate = new Date('April 13, 2010');

if (cDate === jDate) {
  console.log('Equal');
} else {
  console.log('Not Equal');
}
	

Salida

	Not Equal
	

Si desea utilizar el operador igual, debe comparar las fechas utilizando el método getTime()

gettime javascript

	const cDate = new Date('April 13, 2010');
const jDate = new Date('April 13, 2010');

if (cDate.getTime() === jDate.getTime()) {
  console.log('Equal');
} else {
  console.log('Not Equal');
}
	

Salida

	Equal
	

Comparación con valueOf

	const cDate = new Date('April 13, 2010');
const jDate = new Date('April 13, 2010');

if (cDate.valueOf() === jDate.valueOf()) {
  console.log('Equal');
} else {
  console.log('Not Equal');
}
	

Salida

	Equal
	

compare date javascript

date-fns es simplemente una colección de utilidades y métodos auxiliares para facilitar el uso de objetos Date nativos de JavaScript.

	import { isAfter, isBefore, areEqual, isSameDay } from 'date-fns';

const cDate = new Date('09/12/2021');
const jDate = new Date('09/12/2011');

isAfter(cDate, jDate); // true
isBefore(cDate, jDate); // false
areEqual(cDate, jDate); // false
isSameDay(cDate, jDate); // false
	

Compara fechas usando el moment.js

  • Para comparar dos fechas, simplemente convierta las fechas en el objeto momento y use la función isSame().
	moment('2021-04-21').isSame('2021-04-21'); // true
	
  • Compara si solo el día es el mismo.
	moment('2021-04-21').isSame('2021-04-21', 'day'); // true
moment('2021-04-21').isSame('2021-04-20', 'day'); // false
	
  • Compara si los meses son iguales.
	moment('2021-04-21').isSame('2021-04-21', 'month'); // true
moment('2021-04-21').isSame('2021-05-21', 'month'); // false
	
  • Compara si los años son iguales.
	moment('2021-04-21').isSame('2021-04-21', 'year'); // true
moment('2020-04-21').isSame('2021-04-21', 'year'); // false