8

Получить разницу между двумя датами в JavaScript?

1

Описание проблемы

Я пытаюсь получить разницу между двумя датами в полных днях (не хочу получать дробные значения). У меня есть следующий код:

var date1 = new Date('7/11/2010');
var date2 = new Date('12/12/2010');
var diffDays = date2.getDate() - date1.getDate(); 
alert(diffDays);

Однако, когда я запускаю этот код, результат меня не устраивает.

Моя проблема в том, что данный подход не учитывает полный промежуток между датами, а только дни месяца. Не мог бы кто-то подсказать, как правильно рассчитать полное количество дней между двумя датами? Заранее спасибо!

2 ответ(ов)

0

Ваш код вычисляет разницу в днях между двумя датами. Вот его краткое пояснение на русском языке.

var date1 = new Date("7/11/2010"); // Создаем объект Date для 7 ноября 2010 года
var date2 = new Date("8/11/2010"); // Создаем объект Date для 8 ноября 2010 года
var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24), 10); // Вычисляем разницу в миллисекундах и переводим в дни

alert(diffDays); // Показываем пользователю количество дней между датами

В данном случае, diffDays будет равно 1, так как между указанными датами ровно один день. Обратите внимание, что формат даты в JavaScript может варьироваться в зависимости от локали, поэтому рекомендуется использовать формат ISO (например, "2010-11-07").

0

Вот код для вычитания одной даты из другой. В этом примере даты конвертируются в объекты, так как функция getTime() работает только с объектами типа Date.

var dat1 = document.getElementById('inputDate').value;
var date1 = new Date(dat1); // преобразует строку в объект даты
alert(date1);
var dat2 = document.getElementById('inputFinishDate').value;
var date2 = new Date(dat2);
alert(date2);

var oneDay = 24 * 60 * 60 * 1000; // часы * минуты * секунды * миллисекунды
var diffDays = Math.abs((date1.getTime() - date2.getTime()) / oneDay);
alert(diffDays);

Этот код сначала получает значения введенных дат из элементов с ID inputDate и inputFinishDate, затем создает объекты Date для этих значений. Далее рассчитывается разница в днях между двумя датами, используя метод getTime(), который возвращает время в миллисекундах. Итоговая разница в днях выводится с помощью alert().

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь