date — Используя PHP, как включить субботу в свои рабочие дни?

Мне удалось заставить следующий код работать на «будни» и исключить мои особые дни, однако:

Я предлагаю «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;

Это совершенно не удалось, ха-ха, любое руководство и помощь будут с благодарностью. Я думаю, что я близко, просто не понимаю.

Спасибо за любую помощь, это очень ценится. 🙂

2

Решение

Вам нужно зациклить, добавляя дни, если:

  • это не воскресенье или
  • это не в списке особых дней

пока вы не добавили 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;

демонстрация

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector