选择开始日期后设置结束日期
的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); } } });