问题 jQuery UI DatePicker - 禁用除月末之外的所有日期


我正在尝试使用jquery UI datepicker来显示仅可选择月份最后一天的日历。

我已成功使用beforeShowDay事件来禁用一周中的几天,但不确定如何使用它来禁用除月末的最后一天之外的所有内容。


3496
2017-09-14 19:39


起源



答案:


在日历上显示的每个日期都会调用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, ''];
    }
});

15
2017-09-14 22:52



对不起,行返回[false,'']; - 显示语法错误
@MArcin:您可以从该行中删除1个返回。 - understack


答案:


在日历上显示的每个日期都会调用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, ''];
    }
});

15
2017-09-14 22:52



对不起,行返回[false,'']; - 显示语法错误
@MArcin:您可以从该行中删除1个返回。 - understack


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(); 
} 

这会奏效


1
2018-02-15 20:47