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

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" );​

デモ: 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 に答える