0

我想根据可选择的天数显示显示的月数。

例如,如果我有 15 天可供选择,并且日期从今天(2013 年 4 月 23 日)开始,我希望仅将 4 月和 5 月显示为可供选择的月份数。

同样,如果可选择的天数为 60,我想将四月、五月和六月显示为显示的月数。

所以本质上我如何使显示的月数取决于可选择的天数?

提前谢谢了。

我的插件

$.fn.showCalendar = function(options){
    var defaults ={
        selector : "#date-selector",
        calendarIcon : "./images/icons/calendar.gif",
        numberOfSelectableDays : "+60D",
        dateFormat: "dd/mm/yy",
        numberOfMonths : 3,
        daySelector : "#day",
        monthSelector : "#month",
        yearSelector : "#year"
    }

    var $this = $(this);
    var params = $.extend({},defaults, options);

    var getDateFromDropDowns = function(){
         var dateOnDropDowns =  new Date($(params.daySelector).val(),$(params.monthSelector).val(),$(params.yearSelector).val());
         return  dateOnDropDowns;
    }


    return $this.each(function(){
        $this.datepicker({
            showOn: "button",
            buttonImage: params.calendarIcon,
            minDate: 0,
            maxDate: params.numberOfSelectableDays,
            dateFormat: params.dateFormat,
            buttonImageOnly: true,
            numberOfMonths: params.numberOfMonths,
            setDate : getDateFromDropDowns,
            onClose: function(dateText, inst) {
                $(params.yearSelector).val(dateText.split('/')[2]);
                $(params.daySelector).val(dateText.split('/')[0]);
                $(params.monthSelector).val(dateText.split('/')[1]);
            }
        });
    });
},  
4

1 回答 1

0

根据评论更新要更新在屏幕上一次显示的月数,
您可以使用此代码来计算月数

var d = new Date(); 
var n = d.getDate(); 
var total=n+60; 
var numberOfMonthsVal=Math.floor(total/30)+1;

并在$this.datepicker({使用中numberOfMonths:numberOfMonthsVal


使用 JQuery UI 日期选择器

$(function() {
    $( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" }); // Thiw will sow the dates Today -20 to today + 1 Month +10 days
});

在您的情况下,您想显示从今天起接下来的 60 天?

$(function() {
    var day=new Date();
    $( "#datepicker" ).datepicker({ minDate: day, maxDate: (day+60) }); 
});

http://jqueryui.com/datepicker/#min-max

因此,当您调用时,在您的插件中$this.datepicker({传递以下值

        minDate: myDate,
        maxDate: (myDate+60)

在哪里mydate is actual Date object like var mydate=new Date();

于 2013-04-23T16:07:11.157 回答