Я сделал datepicker, где я блокирую определенные даты с параметром beforeShowDay. Я столкнулся с проблемой, когда в конце месяца я блокирую некоторые даты, а доступных дат не остается. Но этот месяц все еще появляется. Мне нужно отключить текущий месяц на datepicker, если нет другой его даты.
function noWeekendsOrHolidays(date) {
var noWeekend = jQuery.datepicker.noWeekends(date);
console.log(noWeekend[0] ? unavailable(date) : noWeekend)
return noWeekend[0] ? unavailable(date) : noWeekend;
}
function getDaysInMonth (date) {
return new Date(date.getFullYear(), date.getMonth(), 0).getDate();
}
function minDate(date = new Date()) {
let t = new Date();
let left = getDaysInMonth(t) - t.getDate();
let h = t.getHours();
let res = (h < 12 && left > 0) ? '0d' : '1d';
let nextDay = new Date(new Date(t).setDate(t.getDate() + 1)).getDay();
let isNextDayWeekend = nextDay === 6 || nextDay === 0;
if(left === 1 && isNextDayWeekend){
res = '2d';
}
return res;
}
$( document ).on( "focus", "input.datepicker:not(.hasDatepicker)", function() {
$( this ).datepicker({
maxDate: '3m',
minDate: minDate(),
constrainInput: true,
beforeShowDay: noWeekendsOrHolidays,
buttonImageOnly: true,
numberOfMonths: 1,
showButtonPanel: false,
showAnim: 'slideDown'
});
});