У меня есть система выбора даты для моей системы бронирования, но она не работает с 1 примером. У меня есть 2 даты для сотрудника, чтобы заполнить. Если я сохраню Дата заезда (мм / дд / гг) 01/01/2020 , и дата выезда будет 01/05 / 2020 . Затем, если я хочу изменить данные бронирования. Я не могу изменить дату выезда на 01/03/2020 , потому что с 1 по 5 теперь отключены даты.
У меня вопрос, если кто-то знает, как с этим справиться. Может быть, мне нужно написать код для другой системы для обработки только отключенных дат. Но я хочу знать, знает ли кто-нибудь, как это сделать с только с датой . Я предпочитаю это.
Я использую flatPickr как указатель даты с Jquery. Я использую PHP для получения отключенных дат из базы данных и загружаю их в виде массива внутри функции отключенных дат средства выбора даты.
Дайте мне знать, что вы думаете, и если у вас есть советы и подсказки Вы также можете ответить мне.
Спасибо за ваше время
HTML код
<div class="form-group row">
<label for="date" class="col-4 col-form-label">Check in</label>
<div class="col-8">
<input id='from1' type='text' name='dateFrom1' data-date="" class='form-control datepickerChange' placeholder="Open date-picker" autocomplete="off" />
</div>
</div>
<div class="form-group row">
<label for="date" class="col-4 col-form-label">Check out</label>
<div class="col-8">
<input id='to1' type='text' name='dateTo1' data-date="" class='form-control datepickerChange' placeholder="Open date-picker" autocomplete="off" />
</div>
</div>
Код DatePicker jquery , Даты из базы данных и код для взятия всего дня между двумя датами и помещенные в функцию disable[]
с переменной $strBlockA
$('#from1').flatpickr({
onChange: function(selectedDates, dateStr, instance) {
endPicker.set('minDate', selectedDates[0]);
},
allowInput: true,
dateFormat: "m/d/yy",
disable: [<?php echo implode(',',array_unique(explode(',', $strBlockA))); ?>],
});
endPicker = flatpickr("#to1", {
allowInput: true,
dateFormat: "m/d/yy",
disable: [<?php echo implode(',',array_unique(explode(',', $strBlockA))); ?>],
});
Код, который берет даты из базы данных а также получает все даты между
//Camping Block A
$sql = "SELECT dateFrom,dateTo from campinginformation WHERE dateFrom IS NOT NULL AND dateTo IS NOT NULL AND dateFrom != '' AND dateTo != '' AND chooseCamping = 'Caravan of camper (kleine plaats)'";
$statement = $connect->prepare($sql);
$success = $statement->execute();
$strBlockA = '';
while ($output = $statement->fetch(PDO::FETCH_ASSOC)) {
// Specify the start date. This date can be any English textual format
$date_from = $output["dateFrom"];
$date_from = strtotime($date_from); // Convert date to a UNIX timestamp
// Specify the end date. This date can be any English textual format
$date_to = $output["dateTo"];
$date_to = strtotime($date_to); // Convert date to a UNIX timestamp
// Loop from the start date to end date and output all dates inbetween
for ($i=$date_from; $i<=$date_to; $i+=86400) {
$strBlockA .= "'".date("m-d-y", $i)."',";
}
}
$strBlockA .= rtrim($strBlockA,",");