将 jquery ui datepicker 上的 maxDate 设置为某个日期

Posted

技术标签:

【中文标题】将 jquery ui datepicker 上的 maxDate 设置为某个日期【英文标题】:Set maxDate on jquery ui datepicker to certain date 【发布时间】:2013-01-19 02:29:24 【问题描述】:

我想将 jQuery UI 的 maxDate 设置为 18/02/2013,但尝试后,它只能让我将其更新为今天的日期。

我该怎么做?

$("#datepicker'.$row['id'].'").datepicker(
    minDate: -0, 
    dateFormat: \'dd/mm/yy\',
    maxDate: 18/02/2013
);

【问题讨论】:

您似乎将0.004470938897168405(18 除以八进制2 除以2013)分配给maxDate,而不是日期字符串。 你没有遇到语法错误吗? 【参考方案1】:

试试这个:

$("#datepicker").datepicker( minDate: -0, maxDate: new Date(2013, 1, 18) );

如果您想使用硬编码日期,请使用 new Date(2013, 1, 18) 模式。

如果你想使用通用模式,请使用"+1D +1M +1Y"

参考链接:http://jsfiddle.net/pradkumar_n/wQe8c/

【讨论】:

我删除 'minDate' 并使用其余部分,它将提前 1 个月显示。对于我想要在'maxDate'中的确切daet,我必须将月份减少1。除此之外效果很好。谢谢 @JayKatira:这是因为无论出于何种原因,month 参数使用从 0 开始的索引,而 dayyear 从 1 开始。这是那些 WHY?!?! 时刻之一。【参考方案2】:
$( "#datepicker" ).datepicker(  minDate: 0, maxDate: 365 );
//365 Days

您也可以使用天数。

【讨论】:

这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review 这里在***中不是为了可以直接用于项目使用的结果。只是 *** 用于提供火花和想法...... :)【参考方案3】:

通过将结束日期选择器范围从今天设置为多 7 天,这对我有用。

$endDateCtrl.datepicker("option", "minDate", -0);
$endDateCtrl.datepicker("option", "maxDate", '+7D');
$endDateCtrl.datepicker();

【讨论】:

【参考方案4】:

我正在使用事件函数设置最大日期:

    $('#datepicker').datepicker(
        changeMonth: true,
        changeYear: true,
        yearRange: "-9:+1",// you can define range of year here.
        dateFormat: 'MM yy',
        onClose: function () 

            var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val();

            var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val();

            $(this).datepicker('setDate', new Date(iYear, iMonth, 1));

        ,
        beforeShow: function () 
            var selDate = $(this).val();
            if ((selDate.length) > 0) 
                iYear = selDate.substring(selDate.length - 4, selDate.length);
                iMonth = jQuery.inArray(selDate.substring(0, selDate.length - 5),

                $(this).datepicker('option', 'monthNames'));
                $(this).datepicker('option', 'defaultDate', new Date(lastYear, iMonth, 1));
                $(this).datepicker('option', 'maxDate', new Date(lastYear, 12, 1));
                $(this).datepicker('setDate', new Date(lastYear, iMonth, 1));
            
        
    );

【讨论】:

【参考方案5】:
$(document).ready(function() 
 $( "#dob" ).datepicker(
       maxDate: -0,
      changeMonth:true,
      changeYear:true,
      yearRange:"-100:+100",
      dateFormat: "yy-mm-dd",
    );
);

【讨论】:

请不要只发布代码作为答案,还要包括对代码的解释以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。

以上是关于将 jquery ui datepicker 上的 maxDate 设置为某个日期的主要内容,如果未能解决你的问题,请参考以下文章

如何清除/重置 jQuery UI Datepicker 日历上的选定日期?

将 JQuery UI Datepicker 与来自 Jquery UI 主题的图标一起使用

如何从 jQuery UI datepicker 获取日期

jQuery UI 实例 - 日期选择器(Datepicker)

如何在 jquery-ui datepicker 中禁用动画?

jquery Ui datepicker()