jQuery datepicker显示下个月(如果接近本月底)

jQuery datepicker显示下个月(如果接近本月底),jquery,jquery-ui-datepicker,Jquery,Jquery Ui Datepicker,如果当前日期接近月底,如何将日历设置为自动显示下个月 以解决日历是否默认为此的问题 目前我有: $(predecessor+"input.datePicker").datepicker({ minDate: 0, changeMonth: true, dateFormat: "dd/mm/yy", firstDay: 1, hideIfNoPrevNext: true, showAnim: 'slideDown', showOn: "bo

如果当前日期接近月底,如何将日历设置为自动显示下个月

以解决日历是否默认为此的问题

目前我有:

$(predecessor+"input.datePicker").datepicker({
    minDate: 0,
    changeMonth: true,
    dateFormat: "dd/mm/yy",
    firstDay: 1,
    hideIfNoPrevNext: true,
    showAnim: 'slideDown',
    showOn: "both",  
    showOtherMonths: true,
    showStatus: true,
    maxDate: '-1d'
});

Datepicker有一个defaultDate选项,指定突出显示哪一天开始

所以,如果你能拿出你的逻辑来决定下个月什么时候开始,那应该很简单

var defaultDate = new Date();
if(advanceMonth){
  defaultDate = new Date(defaultDate.getYear(), defaultDate.getMonth() + 1, 1, 0, 0,0)
}

$(predecessor+"input.datePicker").datepicker({
  defaultDate: defaultDate
});

Datepicker有一个defaultDate选项,指定突出显示哪一天开始

所以,如果你能拿出你的逻辑来决定下个月什么时候开始,那应该很简单

var defaultDate = new Date();
if(advanceMonth){
  defaultDate = new Date(defaultDate.getYear(), defaultDate.getMonth() + 1, 1, 0, 0,0)
}

$(predecessor+"input.datePicker").datepicker({
  defaultDate: defaultDate
});

使用
beforeShow
事件设置属性
numberOfMonths

$('#calendar').datepicker({
    //minDate: 0,
    changeMonth: true,
    dateFormat: "dd/mm/yy",
    firstDay: 1,
    hideIfNoPrevNext: true,
    showAnim: 'slideDown',
    showOn: "both",  
    showOtherMonths: true,
    showStatus: true,
    //maxDate: '-1d'
    beforeShow: function(text, inst){        
        var next_day = new Date(
            inst.selectedYear,
            inst.selectedMonth,
            inst.selectedDay
        );        
        next_day.setDate(next_day.getDate()+1);
        console.log(inst.selectedMonth);
        console.log(next_day.getMonth());
        if(inst.selectedMonth != next_day.getMonth())
            return {numberOfMonths: 2};
        else
            return {numberOfMonths: 1};
    }
}).datepicker("setDate", "+0d" );​

演示:,选择11月30日并再次打开。

使用
beforeShow
事件设置属性
numberOfMonths

$('#calendar').datepicker({
    //minDate: 0,
    changeMonth: true,
    dateFormat: "dd/mm/yy",
    firstDay: 1,
    hideIfNoPrevNext: true,
    showAnim: 'slideDown',
    showOn: "both",  
    showOtherMonths: true,
    showStatus: true,
    //maxDate: '-1d'
    beforeShow: function(text, inst){        
        var next_day = new Date(
            inst.selectedYear,
            inst.selectedMonth,
            inst.selectedDay
        );        
        next_day.setDate(next_day.getDate()+1);
        console.log(inst.selectedMonth);
        console.log(next_day.getMonth());
        if(inst.selectedMonth != next_day.getMonth())
            return {numberOfMonths: 2};
        else
            return {numberOfMonths: 1};
    }
}).datepicker("setDate", "+0d" );​
演示:,选择11月30日,然后再次打开