В дополнение к победителю Виктора.Я также добавил некоторый код для выделения выбранных дат и добавил, как небольшую задержку в сокрытии календаря.
$("#period").datepicker({
minDate: "+2D",
maxDate: "+1Y",
dateFormat : "mm-dd-yy",
numberOfMonths: 1,
showAnim : "fadeIn",
onSelect: function( selectedDate ) {
if(!$(this).data().datepicker.first){
$(this).data().datepicker.inline = true
$(this).data().datepicker.first = selectedDate;
$(this).data().datepicker.s_first = selectedDate;
delete $(this).data().datepicker.s_second;
}else{
if(selectedDate > $(this).data().datepicker.first){
$(this).data().datepicker.s_second = selectedDate;
$(this).data().datepicker.s_first = $(this).data().datepicker.first;
$(this).val($(this).data().datepicker.first+" - "+selectedDate);
}else{
$(this).val(selectedDate+" - "+$(this).data().datepicker.first);
$(this).data().datepicker.s_second = $(this).data().datepicker.first;
$(this).data().datepicker.s_first = selectedDate;
}
$(this).data().datepicker.inline = true;
var $this = $(this);
setTimeout(function(){
$this.datepicker("hide");
$this.data().datepicker.inline = false;
},750)
}
$(this).datepicker("show"); // update the dates
},
onClose:function(){
delete $(this).data().datepicker.first;
$(this).data().datepicker.inline = false;
$(this).blur()
}, beforeShowDay: function (date) {
var d = date.getTime();
var d_str = date.toJSON().slice(0,10);
s1 = $(this).data().datepicker.s_first;
if (s1){
var d1 = new Date(new String(s1).replace(new RegExp("-", 'g'), "/"));
var d1_str = d1.toJSON().slice(0,10);
var d1 = d1.getTime();
}
s2 = $(this).data().datepicker.s_second
if (s2){
var d2 = new Date(new String(s2).replace(new RegExp("-", 'g'), "/"));
var d2_str = d2.toJSON().slice(0,10);
var d2 = d2.getTime();
}
if (d_str == d1_str || d_str == d2_str) {
return [true, 'ui-state-active', ''];
}else if (d > d1 && d < d2) {
return [true, 'ui-state-highlight', ''];
} else {
return [true, ''];
}
}
});