Reputation: 597
I have to set the minimum date in the jQuery datepicker.
Only allowed values are 1st of the next three months. So I want the calendar to open to the next month instead of existing month.
when I set the min Date to +1M it does open Jan 2014 calendar instead of dec 2013 but the 1st of that month is disabled.
If I set minDate to -0, I see dec calendar with no valid select option as 1st has already passed. The user has to go to next month to and the 1st is selectable. My code is:
$("#effdatepicker").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: "+1M",
maxDate: "+3M",
beforeShow: function () {
if (jQuery('#enddatepicker').val() != "") {
jQuery(this).datepicker('option', 'maxDate', jQuery('#enddatepicker').val());
}
},
beforeShowDay: function (date) {
//getDate() returns the day (0-31)
if (date.getDate() == 1) {
return [true, ''];
}
return [false, ''];
}
});
Upvotes: 2
Views: 1315
Reputation: 597
Ended up doing like this.
var d = new Date();
var d2 = new Date();
d.setMonth(d.getMonth() + 1);
d.setDate('1');
d2.setMonth(d2.getMonth() + 3);
d2.setDate('1');
$("#effdatepicker").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: d,
maxDate: d2,
beforeShow: function () {
if (jQuery('#enddatepicker').val() != "") {
jQuery(this).datepicker('option', 'maxDate', jQuery('#enddatepicker').val());
}
},
beforeShowDay: function (date) {
//getDate() returns the day (0-31)
if (date.getDate() == 1) {
return [true, ''];
}
return [false, ''];
}
}).datepicker('setDate', d)
Upvotes: 0
Reputation: 318172
var d = new Date();
d2 = new Date(),
m = d.getMonth(),
y = d.getFullYear();
d.setFullYear(m > 10 ? y+1 : y, (m < 11 ? m + 1 : 0), 1);
d2.setFullYear(m+3 > 10 ? y+1 : y, (m+3 < 11 ? m + 3 : (m + 3)-12), 1);
$("#effdatepicker").datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
minDate: d,
maxDate: d2,
beforeShow: function () {
if (jQuery('#enddatepicker').val() != "") {
jQuery(this).datepicker('option', 'maxDate', jQuery('#enddatepicker').val());
}
},
beforeShowDay: function (date) {
//getDate() returns the day (0-31)
if (date.getDate() == 1) {
return [true, ''];
}
return [false, ''];
}
}).datepicker('setDate', d)
Upvotes: 2