【问题标题】:Set maxDate on jquery ui datepicker to certain date将 jquery ui datepicker 上的 maxDate 设置为某个日期
【发布时间】: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,而不是日期字符串。
  • 你没有遇到语法错误吗?

标签: jquery-ui datepicker


【解决方案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
  • 这里在stackoverflow中不是为了可以直接用于项目使用的结果。只是 stackoverflow 用于提供火花和想法...... :)
【解决方案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",
          });
      });
      

      【讨论】:

      • 请不要只发布代码作为答案,还要包括对代码的解释以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多