Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jquery.ui日期选择器范围不允许选择同一天_Jquery Ui_Datepicker - Fatal编程技术网

Jquery ui jquery.ui日期选择器范围不允许选择同一天

Jquery ui jquery.ui日期选择器范围不允许选择同一天,jquery-ui,datepicker,Jquery Ui,Datepicker,我正在使用日期选择器选择酒店日期。我需要日期选择器不允许用户在两个日历中选择同一天 这里有一个 这就是它的工作原理: -您不能添加比“开始”日期低的“结束”日期 -“到”和“从”日期不能选择同一天 这是我的代码: $( "#booking-from" ).datepicker({ defaultDate: "+1w", minDate: 0, firstDay: 0, dateFormat: 'dd-mm-yy', changeMonth: true,

我正在使用日期选择器选择酒店日期。我需要日期选择器不允许用户在两个日历中选择同一天 这里有一个

这就是它的工作原理: -您不能添加比“开始”日期低的“结束”日期 -“到”和“从”日期不能选择同一天

这是我的代码:

$( "#booking-from" ).datepicker({
    defaultDate: "+1w",
    minDate: 0,
    firstDay: 0,
    dateFormat: 'dd-mm-yy',
    changeMonth: true,
    numberOfMonths: 1,
    onClose: function( selectedDate ) {
        //$( "#booking-to" ).datepicker( "option", "minDate", selectedDate );           
        /*var day1 = $("#booking-from").datepicker('getDate').getDate() + 1;                 
        var month1 = $("#booking-from").datepicker('getDate').getMonth();             
        var year1 = $("#booking-from").datepicker('getDate').getFullYear();
        year1 = year1.toString().substr(2,2);
        var fullDate = day1 + "-" + month1 + "-" + year1;*/         

        $( "#booking-to" ).datepicker( "option", "minDate", selectedDate );
    }
});
$( "#booking-to" ).datepicker({
    defaultDate: "+1w",
    minDate: '+2d',
    changeMonth: true,
    firstDay: 0,
    dateFormat: 'dd-mm-yy',
    numberOfMonths: 1,
    onClose: function( selectedDate ) {
        //$( "#booking-from" ).datepicker( "option", "maxDate", $('#booking-to').datepicker('getDate') );
    },
    onSelect: function (){
        calculateBooking();
    }
});

$("#booking-from").datepicker('setDate', '+1');
$("#booking-to").datepicker('setDate', '+8');

如何操作?

如果将日期格式更改为ISO(
yy-mm-dd
),则可以利用JavaScript
date
对象轻松添加另一个日期:

var actualDate = new Date(selectedDate);
var newDate = new Date(actualDate.getFullYear(), actualDate.getMonth(), actualDate.getDate()+1);  
$( "#booking-to" ).datepicker( "option", "minDate", newDate );
工作演示:


如果您想保留原始日期格式,可以使用jQuery Datepicker的altFormat选项:

在来自日期选择器的
事件的
onClose
中使用这三行。这不需要对日期格式进行任何更改

onClose: function( selectedDate ) {         
    var minDate = $(this).datepicker('getDate');
    var newMin = new Date(minDate.setDate(minDate.getDate() + 1));
    $( "#booking-to" ).datepicker( "option", "minDate", newMin );
}

编辑

如果您希望以另一种方式实现相同的行为,请在
to
选择器的
onClose
事件中包含此操作

onClose: function( selectedDate ) {
    var maxDate = $(this).datepicker('getDate');
    var newMax  = new Date(maxDate.setDate(maxDate.getDate() - 1));
    $( "#booking-from" ).datepicker( "option", "maxDate",  newMax);
}