Reste las fechas en JavaScript

Valentine Kagwiria 12 octubre 2023
  1. Utiliza la función getTime() para restar la fecha y hora en JavaScript
  2. Usa la función Math.abs() para restar la fecha y hora en JavaScript
  3. Use la función Date.UTC() para convertir las fechas a UTC
Reste las fechas en JavaScript

Este artículo explica cómo restar dos fechas en JavaScript.

Utiliza la función getTime() para restar la fecha y hora en JavaScript

El primer paso sería definir sus dos fechas usando la función new Date() incorporada. Para obtener la diferencia entre ellas en días, restarlas usando la función getTime(), que las convierte en valores numéricos. Puede imprimir el resultado en días o convertirlo en horas, minutos, segundos o milisegundos según sea necesario. A continuación se muestra el código de ejemplo:

var day1 = new Date('08/25/2020');
var day2 = new Date('12/25/2021');

var difference = day2.getTime() - day1.getTime();

document.write(difference);

Resultado:

42080400000

Usa la función Math.abs() para restar la fecha y hora en JavaScript

Este procedimiento es similar al primero, excepto que devuelve el valor absoluto. Tendrás que definir las dos fechas y luego restar las dos variables usando la función Math.abs() de la siguiente manera:

var day1 = new Date('08/25/2020');
var day2 = new Date('08/25/2021');

var difference = Math.abs(day2 - day1);
days = difference / (1000 * 3600 * 24)

console.log(days)

Resultado:

365

Observe que la función Math.abs() distingue entre mayúsculas y minúsculas y no funcionará si se escribe de forma diferente.

Use la función Date.UTC() para convertir las fechas a UTC

Cuando las fechas en cuestión abarcan un cambio de horario de verano, las soluciones anteriores pueden resultar un poco problemáticas. La mejor manera de evitarlo sería convertir las fechas a UTC para deshacerse del DST primero y luego obtener la diferencia entre ellas. Necesitaremos crear una función con dos objetos para las dos fechas, es decir:

function difference(date1, date2) {
  const date1utc =
      Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());
  const date2utc =
      Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());
  day = 1000 * 60 * 60 * 24;
  return (date2utc - date1utc) / day
}

const date1 = new Date('2020-12-10'), date2 = new Date('2021-10-31'),
      time_difference = difference(date1, date2)

console.log(time_difference)

Resultado:

325

Artículo relacionado - JavaScript DateTime