Bootstrap日期选择器

时间:2015-02-14 05:55:24

标签: javascript jquery twitter-bootstrap datepicker

以前可能会问过这个问题,但是我找不到解决办法。

我有两个引导日期选择器。根据第一个日期选择,第二个日期应限制在第一个日期+15。

我希望反之亦然。当用户首先选择第二个日期时,第一个日期应限制在第二个日期 - 15。

到目前为止我的代码:

    var nowTemp = new Date();
    var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(),   nowTemp.getDate(), 0, 0, 0, 0);
    var checkin = $('#inputDate1').datepicker({
        onRender: function (date) {
            return date.valueOf() > now.valueOf() ? 'disabled' : '';
        }
    }).on('changeDate', function (ev) {

        //made changes to condition below
        var newDate = new Date(ev.date)
        checkout.setValue(newDate);
        checkin.hide();
        $('#inputDate2')[0].focus();
    }).data('datepicker');
    var checkout = $('#inputDate2').datepicker({
        onRender: function (date) {
           //made changes to below line
           var after = new Date(checkin.date);
           after.setDate(after.getDate() + 14);
           if(now.valueOf() > after.valueOf())
               {
               return (date.valueOf() <= after.valueOf()) && (date.valueOf()>= checkin.date.valueOf()) ? '' : 'disabled';              
               }
           else if(after.valueOf() > now.valueOf())
               {
               return (date.valueOf() <= now.valueOf()) && (date.valueOf()>= checkin.date.valueOf()) ? '' : 'disabled';
               }
        }
    }).on('changeDate', function (ev) {
        checkout.hide();
    }).data('datepicker');

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

好的,我想出了怎么做,在这里我粘贴我的工作代码。

$(document).ready(function() {
    var nowTemp = new Date();
    var end = new Date();
    var start; 

  $('#start').datepicker({
      startDate: start,
      endDate: end,
      autoclose: true

  }).on('changeDate', function (e){
      var tempdate = new Date(e.date);
      var tempdate1 = new Date(e.date);
      tempdate1.setDate(tempdate1.getDate() + 15);
      $('#end').datepicker('setStartDate', tempdate);
      $('#end').datepicker('setEndDate', tempdate1);
  });

  $('#end').datepicker({
      startDate: start,
      endDate: end,
      autoclose: true
  }).on('changeDate', function (e){
      var tempdate = new Date(e.date);
      var tempdate1 = new Date(e.date);
      tempdate1.setDate(tempdate1.getDate() - 15);
      $('#start').datepicker('setStartDate', tempdate1);
      $('#start').datepicker('setEndDate', tempdate);
  });


});