как вычислить разницу между датами в javascript с учетом дней и часов

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
22 декабря 2024

Сначала необходимо создать два объекта Date, представляющих даты, между которыми мы хотим вычислить разницу. Это можно сделать следующим образом:

const date1 = new Date('2023-10-01T12:00:00'); // Первая дата
const date2 = new Date('2023-10-04T15:30:00'); // Вторая дата

Следующим шагом вычитаем одну дату из другой, чтобы получить разницу в миллисекундах:

const differenceInMilliseconds = date2 - date1; // Расстояние между датами в миллисекундах

Для преобразования миллисекунд в дни и часы, необходимо знать, что:

  • В одной минуте 60 секунд, в одном часе 60 минут, а в одном дне 24 часа.
  • Таким образом, в одном дне 86400000 миллисекунд (24 * 60 * 60 * 1000).
  • В одном часе 3600000 миллисекунд (60 * 60 * 1000).

Применим данные вычисления:

const millisecondsInADay = 24 * 60 * 60 * 1000; // 86400000
const millisecondsInAnHour = 60 * 60 * 1000; // 3600000

const daysDifference = Math.floor(differenceInMilliseconds / millisecondsInADay);
const hoursDifference = Math.floor((differenceInMilliseconds % millisecondsInADay) / millisecondsInAnHour);

Теперь у нас есть количество дней и часов, составляющих разницу между двумя датами.

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

console.log(`Разница: ${daysDifference} дней и ${hoursDifference} часов.`);

Вот полный код:

const date1 = new Date('2023-10-01T12:00:00'); // Первая дата
const date2 = new Date('2023-10-04T15:30:00'); // Вторая дата

// Вычисляем разницу в миллисекундах
const differenceInMilliseconds = date2 - date1;

// Определяем количество миллисекунд в дне и часе
const millisecondsInADay = 24 * 60 * 60 * 1000; // 86400000
const millisecondsInAnHour = 60 * 60 * 1000; // 3600000

// Вычисляем количество дней и часов
const daysDifference = Math.floor(differenceInMilliseconds / millisecondsInADay);
const hoursDifference = Math.floor((differenceInMilliseconds % millisecondsInADay) / millisecondsInAnHour);

// Выводим результат
console.log(`Разница: ${daysDifference} дней и ${hoursDifference} часов.`);
0 0
Познакомьтесь с основами JavaScript бесплатно