JQuery Datepicker日期范围和月份

时间:2013-04-23 15:18:54

标签: jquery jquery-ui datepicker uidatepicker

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

所以一个例子是,如果我有15天可供选择,日期从今天开始(2013年4月23日),我希望只有4月和5月显示为可供选择的月份数。< / p>

同样,如果可选择的天数60,我想将4月,5月和6月显示为显示的月数。

因此,从本质上讲,如何显示所显示的月数是以可选天数为条件的?

非常感谢提前。

我的插件

$.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]);
            }
        });
    });
},  

1 个答案:

答案 0 :(得分:0)

根据评论进行更新 更新屏幕上一次显示的月数
您可以使用此代码o计算月数

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();