Мне удалось заставить следующий код работать на «будни» и исключить мои особые дни, однако:
Я предлагаю «7 рабочих дней без депозита», хотя мой магазин закрыт только по воскресеньям. Поэтому мне нужно, чтобы мой «будний день» включал всю субботу.
$tdate = date("Y-m-d");
$specialdays = ['22-09-2017', '03-10-2017', '14-11-2017', '17-12-2017'];
$i = 7;
$sevenbusinessdays = date('d-m-Y', strtotime($tdate . ' +' . $i . '
Weekday'));
while (in_array($sevenbusinessdays, $specialdays)) {
$i++;
$sevenbusinessdays = date('d-m-Y', strtotime($tdate . ' +' . $i . ' Weekday'));
}
Я полагаю, что с помощью приведенного выше кода ответ как-то связан с
date('w', strtotime($tdate)) == 6
Хотя я не уверен, как это включить. Я пробовал следующее, но это не работает:
$tdate = date("Y-m-d");
$specialdays = ['22-09-2017', '03-10-2017', '14-11-2017', '17-12-2017'];
$i = 7;
$sevenbusinessdays = date('d-m-Y', strtotime($tdate . ' +' . $i . ' Weekday' . date('w', strtotime($tdate)) == '6'));
while (in_array($sevenbusinessdays, $specialdays)) {
$i++;
$sevenbusinessdays = date('d-m-Y', strtotime($tdate . ' +' . $i . ' Weekday' . date('w', strtotime($tdate)) == '6'));
}
print $sevenbusinessdays;
Это совершенно не удалось, ха-ха, любое руководство и помощь будут с благодарностью. Я думаю, что я близко, просто не понимаю.
Спасибо за любую помощь, это очень ценится. 🙂
Вам нужно зациклить, добавляя дни, если:
пока вы не добавили 7 дней
<?php
$tdate = date("Y-m-d");
$specialdays = ['15-09-2017', '20-09-2017', '14-11-2017', '17-12-2017'];
$days = 0;
$i = 0;
while ($days < 7) {
$i++;
$day = strtotime($tdate . ' +' . $i . ' day');
if (date("w", $day) === "0" || in_array(date("d-m-Y", $day), $specialdays)) {
continue;
}
$days++;
}
$sevenbusinessdays = date('d-m-Y', strtotime($tdate . ' +' . $i . ' day'));
echo $sevenbusinessdays;
Других решений пока нет …