选择开始日期后设置结束日期

的jsfiddle

如何设置结束日期必须是开始日期后1天?

$("#beginDate").datepicker({ minDate: 1, changeMonth: true, dateFormat: 'mm/dd/yy', onClose: function (selectedDate, instance) { if (selectedDate != '') { $("#endDate").datepicker("option", "minDate", selectedDate); var date = $.datepicker.parseDate(instance.settings.dateFormat, selectedDate, instance.settings); date.setMonth(date.getMonth() + 3); console.log(selectedDate, date); $("#endDate").datepicker("option", "minDate", selectedDate); $("#endDate").datepicker("option", "maxDate", date); } } }); 

只需更新代码中的onclose事件即可使用此行

 var minDate2 = new Date(selectedDate); minDate2.setDate(minDate2.getDate() + 1); $("#endDate").datepicker("option", "minDate", minDate2); 

代替

 $("#endDate").datepicker("option", "minDate", selectedDate); 

小提琴

例如,在此示例代码中, startDatePicker被选为2014-3-18, startDatePicker更改事件设置endDatePicker 2014-3-19的minDate 。 它在此日期之前锁定了单元格。 我希望它有帮助……

  $("#startDatePicker").datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true, minDate: new Date(), maxDate: '+2y', onSelect: function (date) { var selectedDate = new Date(date); var msecsInADay = 86400000; var endDate = new Date(selectedDate.getTime() + msecsInADay); $("endDatePicker").datepicker("option", "minDate", endDate); $("endDatePicker").datepicker("option", "maxDate", '+2y'); } }); $("endDatePicker").datepicker({ dateFormat: 'yy-mm-dd', changeMonth: true }); 

问题是datepicker我期待一个日期数据类型。

  var date = new Date(selectedDate); date.setDate(date.getDate() +1); console.log(selectedDate, date); $("#endDate").datepicker("option", "minDate", date); $("#endDate").datepicker("option", "maxDate", date); 

更新了jsFiddle

制作日期差异。 它将隐藏日期。

 $(function() { $( "#beginDate, #endDate" ).datepicker({ defaultDate: "+1w", changeMonth: true, onSelect: function( selectedDate ) { if(this.id == 'beginDate'){ var dateMin = $('#beginDate').datepicker("getDate"); var rMin = new Date(dateMin.getFullYear(), dateMin.getMonth(),dateMin.getDate() + 1); $('#endDate').datepicker("option","minDate",rMin); $('#endDate').datepicker('setDate', rMin); } } });