如何在Bootstrap datepicker中设置最大日期和默认日期

时间:2016-06-02 12:24:33

标签: jquery datepicker bootstrap-datepicker

使用此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小提琴

2 个答案:

答案 0 :(得分: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 :(得分:0)

我终于用@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);
  });