将jquery ui日期选择器的maxDate设置为特定日期

22

我想将 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,而不是一个日期字符串。 - Frédéric Hamidi
你没有收到语法错误或其他什么提示吗? - Salman A
5个回答

39

试试这个:

$("#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”中获得确切的日期,则必须将月份减少1个月。除此之外都很好用。谢谢。 - Jay Katira
2
@JayKatira:这是因为出于某种原因,month参数使用基于0的索引,而dayyear则是基于1的。这是那种让人无语的时刻。 - Antti29

5
$( "#datepicker" ).datepicker( { minDate: 0, maxDate: 365 });
//365 Days

您也可以使用天数来表示时间。

这并没有提供问题的答案。如果要批评或请求作者澄清,请在他们的帖子下留言。-【来自审查】 - Niladri
1
在Stack Overflow上,我们不是为了直接将结果用于项目中而存在的。我们只是使用Stack Overflow来提供灵感和想法... :) - Ramesh

2

通过将结束日期选择器范围设置为从今天到7天后,此方法对我有效。

原始答案: "最初的回答"

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

1
$(document).ready(function() {
 $( "#dob" ).datepicker({
       maxDate: -0,
      changeMonth:true,
      changeYear:true,
      yearRange:"-100:+100",
      dateFormat: "yy-mm-dd",
    });
});

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

1

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

    $('#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));
            }
        }
    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接