В настоящее время я делаю сайт для бронирования отелей, и я пытаюсь узнать, как отключить jQuery DatePickers в зависимости от значений из базы данных.
Например, даты 1 марта до 5 марта вставляются в таблицы базы данных A checkin
и checkout
строк.
Итак, теперь у checkin
есть значение 1 марта, а checkout
- 5 марта.
Скажем, у меня есть два jQuery datepicker, один для проверки и один для проверки. Как отключить дни 1 марта и 5 марта в них, взятые из значения внутри базы данных?
Здесь мой текущий скрипт для datepicker:
$(function () {
$("#checkin").datepicker({
dateFormat: "M-dd-yy",
minDate: 0,
onClose: function () {
var date2 = $('#checkin').datepicker('getDate');
date2.setDate(date2.getDate() + 1);
$('#checkout').datepicker('setDate', date2);
$('#checkout ').datepicker('option', 'minDate', date2);
datepicked();
$('#checkout').datepicker('option');
}
});
$('#checkout').datepicker({
dateFormat: "M-dd-yy",
minDate: 0,
onSelect: function () {
var dt1 = $('#checkin ').datepicker('getDate');
var dt2 = $('#checkout').datepicker('getDate');
datepicked();
//check to prevent a user from entering a date below date of dt1
if (dt2 <= dt1) {
var minDate = $('#checkout ').datepicker('option', 'minDate');
$('#checkout').datepicker('setDate', minDate);
$('#checkin').datepicker('option');
}
}
});
var datepicked = function() {
var checkin = $('#checkin');
var checkout = $('#checkout');
var nights = $('#nights');
var fromDate = checkin.datepicker('getDate');
var toDate = checkout.datepicker('getDate');
if (toDate && fromDate) {
var oneDay = 1000*60*60*24;
var difference = Math.ceil((toDate.getTime() - fromDate.getTime()) / oneDay);
nights.val(difference);
}
};
});
$(function () {
$("#date").datepicker({
dateFormat: "dd-M-yy",
minDate: 0,
autoclose: true,
startDate: new Date()
});
});
Большое спасибо вам за продвинутый.
Если вы попытаетесь установить начальное значение для этого ввода, просто используйте setDate
после инициализации setDate
. В атрибуте значения набора PHP для ввода:
<input id="checkin" value="<?= date('M-dd-yy', $valueFromDbCheckin) ?>">
И просто вызовите setDate
:
$( "#checkin" ).datepicker( "setDate", $('checkin').val() );
Если вы попытаетесь отключить некоторую дату в datepicker, вы, вероятно, можете попробовать это решение:
Отключить массив даты JQuery DatePicker