jQuery Datepicker - 设置抵达日期后1天的出发日期

问题描述:

我正在创建预订小部件,并且希望在抵达日期后的1天内设置“出发日期”。这是我到目前为止,但由于某种原因,它显示相同的日期,而不是第二天。jQuery Datepicker - 设置抵达日期后1天的出发日期

jQuery(document).ready(function() { 
    var nowTemp = new Date(); 
    var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0); 
    var checkin = jQuery('#arrivalDate').fdatepicker({ 
     onRender: function (date) { 
      return date.valueOf() < now.valueOf() ? 'disabled' : ''; 
     } 
    }).on('changeDate', function (ev) { 
     if (ev.date.valueOf() > checkout.date.valueOf()) { 
      var newDate = new Date(ev.date); 
      newDate.setDate(newDate.getDate() + 1); 
      checkout.update(newDate); 
     } 
     checkin.hide(); 
     jQuery('#departureDate')[0].focus(); 
    }).data('datepicker'); 
    var checkout = jQuery('#departureDate').fdatepicker({ 
     onRender: function (date) { 
      return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : ''; 
     } 
    }).on('changeDate', function (ev) { 
     checkout.hide(); 
    }).data('datepicker'); 
}); 

这个问题已经在这里回答了Incrementing a date in JavaScript但是如果你不想读它。然后,你应该改变这种

var newDate = new Date(ev.date); 

这个

var newDate = new Date(ev.getDate() + 1); 

然后newDate将当天加上一个额外的一天,是你添加的一个。

+0

我有'newDate.setDate(newDate.getDate()+ 1);'就在你提到的那一行下面。 – JeremyE

+0

我知道,但newDate应该为null,因为它不正确initiliaze所以当你尝试'newDate.setDate(newDate.getDate()+ 1);'你说newdDate应该设置为null加1,错误是在'var newDate = new Date(ev.date);'中 –