Loading...
JavaScript | Ошибка NaN на выходе JavaScript
Всем салам 👋
Делема следующего типа:

Есть поля ввода дат и поле количества, если поле количества отрабатывает как нужно, то дата на выходе бьет как NaN

Что нужно сделать:

Берем дату заезда допустим 10.10.2010 из формы
Берем дату выезда допустим 12.10.2010 из формы

На выходе должны получить ответ переменной day 3, но он выбивает NaN

При добавление в константу значений поля с value, выбивает вообще пустой [Object][Object], что типа он вообще не в состоянии и не видит объекты типа value

Ответ input полей мы первоначально получаем такой: 2010-10-10 и 2010-10-12, в перевернутом формате

Поля ввода:

<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>


Js code:


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
Онлайн: 3
Время:
Gen. 0.0585
(c) ByMAS.RU 2010-2025