JavaScript | Ошибка NaN на выходе JavaScript
Всем салам 👋 Делема следующего типа: Есть поля ввода дат и поле количества, если поле количества отрабатывает как нужно, то дата на выходе бьет как NaN Что нужно сделать: Берем дату заезда допустим 10.10.2010 из формы Берем дату выезда допустим 12.10.2010 из формы На выходе должны получить ответ переменной day 3 , но он выбивает NaN При добавление в константу значений поля с value, выбивает вообще пустой [Object][Object], что типа он вообще не в состоянии и не видит объекты типа value Ответ input полей мы первоначально получаем такой: 2010-10-10 и 2010-10-12, в перевернутом формате Поля ввода: Js code:
html
<form class="hero__form"> <label for="" class="label"> Дата заезда <input name="arrive" type="date" class="input" id="arrive" required /> </label> <label for="" class="label"> Дата выезда <input name="departure" id="departure" type="date" class="input" required /> </label> <label for="" class="label"> Количество гостей <div class="guestInput__wrapper"> <input name="guests" type="number" step="1" min="1" class="input" required id="guestsInput" /> </div> </label> <button class="button hero__form-button">Подобрать номер</button> </form> javascript
if (roomFiltersForm) { guestsInput.addEventListener('input', (event) => { const guests = event.target.value; const departure = document.getElementById('departure'); const arrival = document.getElementById('arrival'); const bookingButton = document.querySelector('.hero__form-button'); const firstDate = new Date(arrival); const secondDate = new Date(departure); // Вычисляем разницу между датами в миллисекундах const timeDifference = firstDate.getTime() - secondDate.getTime() + (1000 * 3600 * 24); // Преобразуем разницу в дни const day = timeDifference / (1000 * 3600 * 24); window.open("booking.php?gosti=" + guests + "&day=" + day, '_blank'); // Открываем новое окно при вводе значения }); }
getElementById("departure").value
getElementById("arrival").value
Значение не забывай получать
Увидел, что у тебя с этим вариантом какие-то проблемы, так что можешь попробовать так:
var date1 = new Date($('#departure').val());
var date2 = new Date($('#arrival').val());
________
посл. ред. 08.12.2023 в 14:11; всего 1 раз(а); by TheAlex
getElementById("arrival").value
Значение не забывай получать
Увидел, что у тебя с этим вариантом какие-то проблемы, так что можешь попробовать так:
var date1 = new Date($('#departure').val());
var date2 = new Date($('#arrival').val());
________
посл. ред. 08.12.2023 в 14:11; всего 1 раз(а); by TheAlex