Возможный дубликат: Как установить maxDate в последний день декабря текущего года?
Рассмотрим следующий код:
$(function() {
var holidays = {
2019: {
1: {
1: [
false,
"holiday",
"New Year's Day"
],
21: [
false,
"holiday",
"Martin Luther King Jr. Day"
]
},
2: {
18: [
false,
"holiday",
"Presidents' Day"
]
},
5: {
27: [
false,
"holiday",
"Memorial Day"
]
},
7: {
4: [
false,
"holiday",
"Independence Day"
]
},
9: {
2: [
false,
"holiday",
"Labor Day"
]
},
10: {
14: [
false,
"holiday",
"Columbus Day"
]
},
11: {
11: [
false,
"holiday",
"Veterans Day"
],
28: [
false,
"holiday",
"Thanksgiving Day"
]
},
12: {
25: [
false,
"holiday",
"Christmas Day"
],
31: [
false,
"holiday",
"New Year's Eve"
]
}
}
};
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var result = [true, ""];
var yr = $.datepicker.formatDate("yy", date),
mo = $.datepicker.formatDate("m", date),
dy = $.datepicker.formatDate("d", date);
if (date.getDay() == 0 || date.getDay() == 1) {
result[0] = false;
}
if (holidays[yr] !== undefined) {
if (holidays[yr][mo] !== undefined) {
if (holidays[yr][mo][dy] !== undefined) {
console.log("Holiday: " + mo + "/" + dy + "/" + yr);
result = holidays[yr][mo][dy];
}
}
}
return result;
}
});
});
table.ui-datepicker-calendar tbody td.holiday span {
border: 1px solid #222;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<label><span style="color: #000080;"><strong>Your Appointment Date</strong></span>(required)</label><input type="text" id="datepicker">
Поскольку вы не указали, какие праздничные дни вам нужны, я скопировал старый код, который у меня был, для другого ответа.Это сложнее, чем нужно.Вы можете просто иметь массив или даты.
В beforeShowDay
мы предполагаем, что все дни будут [true, ""]
.Таким образом, всегда есть что вернуть.Затем мы проверяем каждый день, ища день недели, равный 0
или 1
(воскресенье или понедельник), или ищем день, который был определен как выходной.Затем мы обновляем наш массив результатов и возвращаем его.
Обновление
В своем коде WP вы захотите убедиться, что вы создаете ввод текста, а не ввод даты,Также все идентификаторы должны быть уникальными, поэтому, если у вас есть другие datepicker
идентификаторы, вы должны рассмотреть возможность их изменения.
Создание средства выбора даты на <input type="date">
не поддерживается из-за конфликта пользовательского интерфейса с собственнымподборщика.
Я бы посоветовал следующее:
<label> <span style="color: #000080;"><strong>Your Appointment Date</strong></span>(required)</label>[text* date-163 id:datepicker]
Надеюсь, это поможет.