jQuery UI DatePicker-отключить все дни, кроме последнего дня месяца

Я пытаюсь использовать jQuery UI datepicker, чтобы показать календарь только с последним днем месяца.

Я успешно использовал событие beforeShowDay для отключения дней недели, но не уверен, как я буду использовать это, чтобы отключить все, кроме последнего дня месяца.

2 ответов


beforeShowDay вызывается для каждой даты, показанной в календаре. Когда вызывается beforeShowDay, необходимо определить, является ли дата, переданная ему, последним днем месяца.

следующий JScript возвращает последний день месяца для данного года и месяца.

function LastDayOfMonth(Year, Month)
{
    return(new Date((new Date(Year, Month+1,1))-1)).getDate();
}

используйте следующий код, чтобы определить, является ли дата beforeShowDay последней в месяце:

$('.selector').datepicker({
    beforeShowDay: function (date) {
        //getDate() returns the day (0-31)
        if (date.getDate() == LastDayOfMonth(date.getFullYear(),date.getMonth())) {
            return [true, ''];
        }
        return [false, ''];
    }
});

function LastDayOfMonth(Year, Month) { 
    //set next month first day
    //substract one day from it.        
    return new Date(new Date(Year, Month+1,1)-1).getDate(); 
} 

Это будет работать