В гравитационной форме я смог отключить выходные и паблики c праздники из DatePicker 1 (от даты) и Datepicker 2 (до даты).
В Datepicker 2 мы хотим выбрать первый рабочий день через три дня после даты, выбранной в DatePicker 1.
См .: http://returatrv.staging.wpengine.com/bestilling-container-borettslag/
Если вы выберете feb 17 в cal1, feb 20 будет выбран в DP2, что верно. SetDate - это getDate +3 дня.
Когда setDate заканчивается в выходные или в нерабочее время, он должен перейти к следующему рабочему дню. Если в DP1 выбрано 19 февраля, 24 должно быть выбрано в DP2 (первый рабочий день). Как я могу использовать уже существующий код (строка 9-15) для установки setDate на первый день без блокировки в массиве?
У меня такое чувство, что я мог бы повторно использовать код в
optionsObj.beforeShowDay = function(date) { ...
для изменения setDate для DP2.
set_date.setDate(set_date.getDate() + 3); //check if the result is in disabled days / weekends
Я был бы очень признателен за помощь по этому вопросу;) Хотя многие другие вопросы похожи (например, Добавление дней после даты выбрано, исключая выходные и праздники ), я не смог решить эту проблему.
gform.addFilter('gform_datepicker_options_pre_init', function(optionsObj,
formId, fieldId) {
if (formId == <?php echo $skjemaID; ?> && fieldId == 7) {
// Disable holidays and weekends from datapickers
// Could I use this to find first work-day?
optionsObj.beforeShowDay = function(date) {
// array of holidays from external json-source
currentDate = jQuery.datepicker.formatDate('yy-mm-dd', date),
day = date.getDay();
return [!(disabledDays.indexOf(currentDate) != -1 || day == 0 ||
day == 6)];
};
optionsObj.minDate = 1;
optionsObj.onClose = function(dateText, inst) {
var min_date = $.datepicker.parseDate('dd/mm/yy', dateText),
set_date = $.datepicker.parseDate('dd/mm/yy', dateText),
end_date = $.datepicker.parseDate('dd/mm/yy', dateText);
// set minDate in datepicker 1 to nest day
min_date.setDate(min_date.getDate() + 1);
// Find first workday after 3 days
// Samples of expected behaviour:
// Select feb 10 in dp1 - show feb 13 in dp2
// Select feb 12 in dp1 - show feb 17 in dp2
// Select feb 27 in dp1 - show mar in dp2
set_date.setDate(set_date.getDate() +3);
// Check if set_date is in disabledDays or weekend
// if yes, add a day, check again
// if not, select set_day in datepicker 2
$('#input_<?php echo $skjemaID; ?>_8').datepicker('option',
'minDate', min_date).datepicker('setDate', set_date);
};
}
return optionsObj;
});
Пожалуйста, помогите мне в правильном направлении; Я довольно долго боролся с этим.