datepickerで第1・第3・第5など、毎週ではない休みを選択できないようにする記述。
追加(2025.1.31)指定した日付も選択できないようにするように変更
例は、翌日(明日から)2か月間選択可能で毎週木曜日と第1・第3・第5水曜日が定休日の場合
$(function() {
// 休日の指定
var disabledDates = ["2025-01-01", "2025-01-02", "2025-01-03"];
$('#calendar').datepicker({
showOn: 'button',
buttonImageOnly: true,
buttonText: 'カレンダーから選択',
buttonImage: 'https://fujita-megane.com/wp-content/themes/fujita-h2021s/images/ico_calendar.png',
minDate: '1d', //明日から
maxDate: '+2m', //2ヶ月間(約60日)が選択可能範囲
dateFormat: 'yy年mm月dd日(D)', //年-月-日(曜日)
beforeShowDay: function(date) {
var day = date.getDay();
var dateString = $.datepicker.formatDate('yy-mm-dd', date);
var dateOfMonth = date.getDate();
var weekOfMonth = Math.ceil(dateOfMonth / 7);
// 木曜日かどうかをチェック
if (day === 4) {
return [false, "", "定休日です"];
}
// 水曜日かどうかをチェック(第1・第3・第5水曜日)
if (day === 3 && (weekOfMonth === 1 || weekOfMonth === 3 || weekOfMonth === 5)) {
return [false, "", "定休日です"];
}
// 指定した日付を選択できないようにする
if (disabledDates.indexOf(dateString) !== -1) {
return [false, "", "この日は選択できません"];
}
return [true, ""];
}
});
});