【问题标题】:How to set max date and default date in Bootstrap datepicker如何在 Bootstrap 日期选择器中设置最大日期和默认日期
【发布时间】:2016-10-02 04:29:27
【问题描述】:

我正在使用这个Boostrap Datepicker,我想将最大日期设置为距开始日期 1 年,1 年后应禁用日期,一旦选择了开始日期,结束日期应自动设置为距开始日期 3 个月选定的日期,但只能在从开始日期起 1 年后禁用,最短日期甚至可以是 2 天。

<div class="form-group">
    <label class="control-label" for="startDate">Start Date<span>*</span>(MM/DD/YYYY)</label> 
    <input class="step__field form-control hasPlaceholder date-input" id="startDate" name="startDate" type="text" value="">
</div>
<div class="form-group">
    <label class="control-label" for="endDate">End Date(MM/DD/YYYY)</label>
    <input class="form-control hasPlaceholder date-input step__field" id="endDate" name="endDate" type="text" value="">
</div>

JS

var nowDate = new Date();
var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0);
$('#startDate').datepicker({
    startDate: today
});

如果你能建议我任何其他插件,请按照要求创建一个 JS fiddle

【问题讨论】:

    标签: jquery datepicker bootstrap-datepicker


    【解决方案1】:
    var nowDate = new Date();
    var today = new Date(nowDate.getFullYear()-1, nowDate.getMonth(), nowDate.getDate(), 0, 0, 0, 0);
    
        $('#startDate').datepicker('startDate', today);
    
        $('#startDate').datepicker().on('changeDate', function(ev) {
            var today1 = new Date(ev.date.getFullYear(), ev.date.getMonth()+3, ev.date.getDate(), 0, 0, 0, 0);
            $('#endDate').datepicker('setStartDate',today1);
        });
    

    编辑:

    $('#startDate').datepicker().on('changeDate', function(ev) {
        var set_Date = new Date(ev.date.getFullYear(), ev.date.getMonth()+3, ev.date.getDate(), 0, 0, 0, 0);
        var start_date = new Date(ev.date.getFullYear(), ev.date.getMonth(), ev.date.getDate()+2, 0, 0, 0, 0);
        var end_date = new Date(ev.date.getFullYear()+1, ev.date.getMonth(), ev.date.getDate(), 0, 0, 0, 0);
    
        $('#endDate').datepicker('setStartDate',start_date);
        $('#endDate').datepicker('setDate',set_Date);
        $('#endDate').datepicker('setEndDate',end_date);
    });
    

    【讨论】:

    • 非常感谢您的快速回复,对不起,我解释得很好,结束日期的最大范围应该是从开始日期开始的 1 年,最小范围甚至可以是 2 天,但应该禁用1 年后,一旦选择了开始日期,结束日期应在开始日期后 3 个月内填充
    • 如何禁用开始日期后一年的日期?
    【解决方案2】:

    我终于用@Parth Patel 的代码完成了我一直在寻找的东西,非常感谢,对于那些正在寻找相同要求的人,这就是代码

    var nowDate = new Date();
      var today = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(),
          0, 0, 0, 0);
      $('#startDate').datepicker({
          startDate: today
      });
      $('#startDate').datepicker().on('changeDate', function(ev) {
          var selectedStartDate = $('#startDate').datepicker('getDate');
          var year1 = new Date(selectedStartDate.getFullYear() + 1,
              selectedStartDate.getMonth(), selectedStartDate.getDate(),
              0, 0, 0, 0);
          var today1 = new Date(ev.date.getFullYear(), ev.date.getMonth() +
              3, ev.date.getDate(), 0, 0, 0, 0);
          $('#endDate').datepicker('setStartDate', today);
          $('#endDate').datepicker('update', today1);
          $('#endDate').datepicker('setEndDate', year1);
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 2021-03-14
      相关资源
      最近更新 更多