我正在尝试实施度假村预订,我可以使用bootstrap daterangepicker
检查特定日期是否仍然可用,但我无法弄清楚如何执行此操作。我得到了this thread,但它没有使用daterangepicker
。
注意:我也在使用laravel5.1,所以这可能有助于解决这个问题。
数据库字段
id
name
Place
start_time
end_time
我的JS代码设置与daterangepicker
$(function () {
$('.time').daterangepicker({
"minDate": moment('{{ date('Y-m-d G') }}'),
"timePicker": true,
"showDropdowns": true,
"timePicker24Hour": false,
"timePickerIncrement": 5,
"autoApply": true,
"locale": {
"format": "MM/DD/YYYY hh:mm:ss A",
"separator": " — ",
}
});
});
答案 0 :(得分:1)
理想情况下,在创建daterangepicker的新实例时,最好使用isInvalidDate
配置选项。
isInvalidDate
var disabledDates = {{ $disabledDates->toJson(); }};
$(function () {
$('.time').daterangepicker({
"minDate": moment('{{ date('Y-m-d G') }}'),
"timePicker": true,
"showDropdowns": true,
"timePicker24Hour": false,
"timePickerIncrement": 5,
"autoApply": true,
"locale": {
"format": "MM/DD/YYYY hh:mm:ss A",
"separator": " — ",
},
"isInvalidDate": function (date) {
return disabledDates.indexOf(date) != -1;
}
});
});
此实例中的$disabledDates
php变量被假定为禁用日期的集合,所有这些都是字符串格式。
答案 1 :(得分:1)
假设您有start_date
和end_date
。
$(function() {
var start_date = '2018-3-1';
var end_date = '2018-3-10';
$('input[name="daterange"]').daterangepicker({
"minDate": moment('2018-1-1'),
"timePicker": true,
"showDropdowns": true,
"timePicker24Hour": false,
"timePickerIncrement": 5,
"autoApply": true,
"locale": {
"format": "MM/DD/YYYY hh:mm:ss A",
"separator": " — ",
},
"isInvalidDate": function (date) {
var is_valid = true;
@foreach($dates as $date)
if(moment(date).isBetween($date->start_date, $date->end_date, 'day', '[]')){
is_valid = false;
}
@endforeach
return is_valid;
}
});
});
然后您无法选择start_date和end_date之间的日期。