1
我正在使用jqueryui datepicker(http://jqueryui.com/datepicker/#date-range)來選擇用於安排事件的範圍。我試圖維護開始日期更改後兩個日期之間的偏移量。我在另一篇文章(Add a day with selected date using Jquery datepicker)中找到了一個合理的解決方案,但是我發現當你選擇一個在當前選擇的開始日期之前的日期時(例如:將開始日期從10/20/2013更改爲2013年10月13日)它返回所選的最後日期而不是偏移日期。jqueryui datepicker - 維護兩個日期之間的偏移量
<script>
$(document).ready(function() {
$("#date_start").datepicker({
changeMonth: true,
numberOfMonths: 1,
dateFormat: "yy-mm-dd",
showOn: "both",
buttonImage: "images/smCal.gif",
buttonImageOnly: true,
constrainInput: true,
onSelect: function(selectedDate) {
var stDate = $("#curStartDate").val().split('-');
var enDate = $("#date_end").val().split('-');
var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date(stDate[0],stDate[1],stDate[2]);
var secondDate = new Date(enDate[0],enDate[1],enDate[2]);
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
if(!isNumber(diffDays)) {
diffDays = 0;
}
var date2 = $('#date_start').datepicker('getDate');
date2.setDate(date2.getDate()+diffDays);
$('#date_end').datepicker('setDate', date2);
$("#curStartDate").val(selectedDate)
$("#date_end").datepicker("option", "minDate", selectedDate);
}
});
$("#date_end").datepicker({
changeMonth: true,
numberOfMonths: 1,
dateFormat: "yy-mm-dd",
showOn: "both",
buttonImage: "images/smCal.gif",
buttonImageOnly: true,
constrainInput: true,
minDate:$("#date_start").val()
});
$("#curStartDate").val($("#date_start").val());
});
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
</script>