Javascript 如何使用jQuery datepicker禁用每个月的最后3天

Javascript 如何使用jQuery datepicker禁用每个月的最后3天,javascript,jquery,Javascript,Jquery,这是AlwayShellings答案的副本,但在一个月的最后三天,使用不同的方法禁用 var dateToday=新日期(); $(“#日期选择器”)。日期选择器({ 展示日前:不超过三天, minDate:今天 }); 功能不超过三天(日期){ //雷姆:月的最后一天 var tLastDayOfMonth=新日期(Date.getFullYear(),Date.getMonth()+1,0); //REM:通过日期的日期 var tDate=date.getDate(); //REM:锁定

这是AlwayShellings答案的副本,但在一个月的最后三天,使用不同的方法禁用

var dateToday=新日期();
$(“#日期选择器”)。日期选择器({
展示日前:不超过三天,
minDate:今天
});
功能不超过三天(日期){
//雷姆:月的最后一天
var tLastDayOfMonth=新日期(Date.getFullYear(),Date.getMonth()+1,0);
//REM:通过日期的日期
var tDate=date.getDate();
//REM:锁定一个月的最后三天
如果(
tDate==tLastDayOfMonth.getDate()||
tDate==tLastDayOfMonth.getDate()-1||
tDate==tLastDayOfMonth.getDate()-2
){
return[false,“已关闭”,“抱歉,我们已关闭”]
}
否则{
返回[真,“,”“]
}
}

此解决方案(也源自AlwaysHelping的已删除答案)手动确定当前月份的最后一天,并将其与当前日期进行比较

要向datepicker对象添加更多自定义项,请将它们作为键/值对添加到ShowDay:noLastThreeDays之后的
中(例如:要隐藏所有过去的日子,请使用
minDate:0
,如图所示)

有关更多信息,请查看

$(“#日期选择器”)。日期选择器({
展示日前:不超过三天,
//minDate:0
});
功能不超过三天(日期){
常数
dd=date.getDate(),
mo=日期。getMonth(),
yr=日期。getFullYear(),
三十天月份=[3,5,8,10],//四月、六月、九月、十一月
isLeapYear=(年)=>
(年%100==0)?(年%400==0):(年%4==0);
//月底
让last=31;
if(thirtyDayMonths.includes(mo)){last=30;}
如果(mo==1){last=isLeapYear(yr)?29:28;}
//输出到日期选择器

const result=(dd通常更容易将日期设置为下个月的第一天,并将其减少三天,而不是与特定的数字进行比较。因此,人们不会被特定月份的天数弄乱(28/29/30/31)。如何禁用你会发现很多。请参见下面的工作答案。不,没关系。至少我学到了一些新的东西。谢谢:)还有一个条件是我需要从当前日期禁用过去日期。你可以使用
minDate
选项。
$('.scheduledate').change(function() {
    selectedDate = $(this).datepicker('getDate');
})

function checkDate(selectedDate) {  
   var today = new Date();
   var d = selectedDate.getDate();  
   var dd = today.getDate();
   if(d == dd || d == dd+1 || d == dd+1 || d == dd+1 || d==29 || d== 30 || d==31){
    return [false,'na_dates','Close date F'];
    }else{
   return [true,'   ','Open date T'];
  }
}