Búsqueda de sitios web

javascript - ¿Cómo obtener la diferencia en horas entre dos objetos de fecha?


Tengo dos objetos Date y quiero calcular la diferencia en horas.

Si la diferencia en horas es menor a 18 horas, quiero agregar el objeto de fecha a un arreglo.

Javascript/jQuery, realmente no importa; lo que funcione mejor servirá.

Respuesta #1

La forma más sencilla sería restar directamente los objetos de fecha entre sí.

Por ejemplo:

var hours = Math.abs(date1 - date2) / 36e5;

La resta devuelve la diferencia entre las dos fechas en milisegundos. 36e5 es la notación científica de 60*60*1000, dividir por esto convierte la diferencia en milisegundos a horas.

Respuesta #2

Intenta usar getTime (doc de MDN):

var diff = Math.abs(date1.getTime() - date2.getTime()) / 3600000;
if (diff < 18) { /* do something */ }

Usando Math.abs() no sabemos qué fecha es la más pequeña. Este código probablemente sea más relevante:

var diff = (date1 - date2) / 3600000;
if (diff < 18) { array.push(date1); }

Respuesta #3

Usa la marca de tiempo que obtienes llamando a valueOf en el objeto de fecha:

var diff = date2.valueOf() - date1.valueOf();
var diffInHours = diff/1000/60/60; // Convert milliseconds to hours

Artículos relacionados