【问题标题】:JQuery Datepicker date range and monthsJQuery Datepicker 日期范围和月份
【发布时间】:2013-04-16 21:23:32
【问题描述】:

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

举个例子,如果我有 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]);
            }
        });
    });
},  

【问题讨论】:

  • 你能告诉我们你已经尝试了什么吗?
  • 我会建议在这里显示与问题相关的代码。而不是链接到其他问题
  • 已编辑并添加到页面:)

标签: jquery jquery-ui datepicker uidatepicker


【解决方案1】:

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

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

【讨论】:

  • 这是在我所追求的给定点上,在同一屏幕上彼此相邻显示给用户的月数。我想你可能误解了这个问题。感谢您的关注:)
  • 那你就可以把numberOfMonths这样写...var d = new Date(); var n = d.getDate(); var total=n+60; // 60 o 15 the days you want to add var numberOfMonths=(total/30)+1;
  • 我最终用几个自定义函数自己编写了这个。谢谢你的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多