如何创建一个功能,该功能结合了第一个禁用一周中特定日期的功能;
function disableweekdays(date) {
var day = date.getDay();
return [(day != 0 && day != 2 && day != 4 && day != 5), ""];
}
第二个功能禁用一年中的特殊日期;
function disablespecialdays(date){
var array = ["12-25", "01-01"]
var string = jQuery.datepicker.formatDate('mm-dd', date);
return [ array.indexOf(string) == -1 ]
}
这样他们的结果可以合并为 beforeShowDay ;
$("#myid").datepicker({
beforeShowDay: disableweekdays,
minDate: 0,
dateFormat: 'dd-MM-yy',
inline: true,
showOtherMonths: true,
dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
})
答案 0 :(得分:0)
您可以使用&&
逻辑运算符组合这两个条件。它需要传递所有条件才能显示插件的当前日期。我使用Array#contains
而不是Array#indexOf
因为它更容易理解。
// mock jQuery.datepicker.formatDate
const pad = x => x < 10 ? '0' + x : x
const jQuery = { datepicker: { formatDate: (format, date) => `${pad(date.getMonth() + 1)}-${pad(date.getDate())}` }}
function disableDays(date) {
var day = date.getDate();
var datestamp = jQuery.datepicker.formatDate('mm-dd', date)
var specialDays = ["12-25", "01-01"]
return (
day !== 0
&& day !== 2
&& day !== 4
&& day !== 5
&& !specialDays.includes(datestamp)
)
}
// test the functions
console.log(
disableDays(new Date()) // depends on the day and date
)
console.log(
disableDays(new Date('12-25-2017')) // expect false if not sun, tue, thur, fri
)
console.log(
disableDays(new Date('12-26-2017')) // expect true
)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>