2

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

解决日历一直默认的问题。

在此处输入图像描述

目前我有:

$(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'
});
4

2 回答 2

3

使用beforeShowEvent 设置属性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" );​

演示: http: //jsfiddle.net/Z44PQ/1/,选择11月30日再次打开。

于 2012-11-06T16:50:00.667 回答
1

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
});
于 2012-11-05T14:21:01.860 回答