【问题标题】:Datepicker minDate with StartDate日期选择器 minDate 和 StartDate
【发布时间】:2021-09-03 12:46:11
【问题描述】:

我想用 datepicker 做的是当它第一次显示时,显示当前日期加上 6 个月,你可以用 startDate 来做,但是月份返回按钮被禁用。我试图为今天的日期设置一个 minDate,同样的交易,月份返回按钮被禁用。

是否可以将开始日期设置为当前日期加上 6 个月,但允许用户单击后一个月按钮并且不允许超过当前日期。

var date = new Date();
                date.setDate(date.getDate() - 1);
                var defaultDate = new Date();
                defaultDate.setMonth(date.getMonth() + 6);

                $('[data-toggle="datepicker"]').datepicker({
                        format: 'dd/MM/yyyy',
                        autoHide: true,
                        minDate: date,
                        startDate: defaultDate,
                        changeMonth: true
                });

【问题讨论】:

标签: javascript jquery datepicker


【解决方案1】:

要完成你想要的,你只需要设置:

startDate:带有当前日期,因此不允许用户超过此日期。 [docs reference for startDate]

date: 带有您希望在日期选择器中显示为默认值的日期。 [docs reference for date]

您使用的日期选择器插件似乎也没有这两个属性:minDatechangeMonth。所以这里不需要使用它。

 var date = new Date();
 
 date.setDate(date.getDate() - 1);
 var defaultDate = new Date();
 defaultDate.setMonth(date.getMonth() + 6);

 $('[data-toggle="datepicker"]').datepicker({
  format: 'dd/MM/yyyy',
  autoHide: true,
  date: defaultDate,
  startDate: date,
 });

您可以检查此插件here 的所有选项。

另外,你可以模拟一下here

【讨论】:

    【解决方案2】:

    您必须将 startDate 设置为今天,并将日期设置为今天 +6 个月

    var date = new Date();
                date.setDate(date.getDate() - 1);
                var defaultDate = new Date();
                defaultDate.setMonth(date.getMonth() + 6);
    
                $('[data-toggle="datepicker"]').datepicker({
                        format: 'dd/MM/yyyy',
                        autoHide: true,
                        minDate: date,
                        startDate: date,
                        date: defaultDate,
                        changeMonth: true
                });
    

    【讨论】:

      【解决方案3】:

      我们有属性

      minDate -> For setting minimum selectable date
      startDate -> For setting onload selected date
      maxDate -> For setting maximum selectable date
      

      我们也有类似的功能

      setMinDate
      setStartDate
      setEndDate -> if its datepicker-range
      setMaxDate
      

      【讨论】:

        【解决方案4】:
        var date = new Date();
             date.setDate(date.getDate() - 1);
             var dt = new Date();
             dt.setMonth(date.getMonth() + 6);
        
        jQuery('[data-toggle="datepicker"]').datepicker({
            format: 'dd/MM/yyyy',
            autoHide: true,
            minDate: date,
            startDate: date,
            date: dt,
            changeMonth: true
        });
        

        【讨论】:

        • 欢迎来到 Stack Overflow!请不要仅使用代码 sn-p 来回答问题。 Check this article 学习如何写答案。
        猜你喜欢
        • 2015-08-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-15
        • 2017-01-19
        • 1970-01-01
        相关资源
        最近更新 更多