Reste las fechas en JavaScript
-
Utiliza la función
getTime()
para restar la fecha y hora en JavaScript -
Usa la función
Math.abs()
para restar la fecha y hora en JavaScript -
Use la función
Date.UTC()
para convertir las fechas a UTC
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