Как получить разницу в часах между двумя объектами даты? [дубликат]


этот вопрос уже есть ответ здесь:

У меня есть два объекта Date и я хочу, чтобы вычислить разницу в часах.

Если разница в часах составляет менее 18 часов, я хочу, чтобы подтолкнуть объект Date в матрица.

Javascript / jQuery, на самом деле не имеет значения; что работает лучше всего будет делать.

3 53

3 ответа:

самым простым способом было бы непосредственно вычесть объекты даты друг из друга.

например:

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

вычитание возвращает разницу между двумя датами в миллисекундах. 36e5 научная нотация для 60*60*1000, деление на которое преобразует разность миллисекунд в часы.

попробуйте использовать getTime (mdn doc):

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

используя Math.abs() мы не знаем, какая дата является наименьшим. Этот код, вероятно, более релевантен:

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

используйте метку времени, которую вы получаете, позвонив valueOf на дату объекта:

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