Как решить такую задачу с манипуляцией времени в php?

Доброго времени суток. Есть такая задача:

Мы принимаем заказы каждую неделю до пятницы (14.00), а выдаем готовые заказы каждый понедельник в 11.00, те через три дня.
Именно поэтому, как только в пятницу в 14.00 заканчивается прием заказов, на сайте автоматически меняется дата на следующую дату выдачи заказов.

Пример: Дата окончания приема заказа 12.05.17 в 14.00, выдача заказа 15.05.17 в 11.00, если клиент зашел на сайт 14.01 и сделал заявку 12.05.17, то у него высветиться, что его заказ будет готов 22.05.17. Те, через неделю.

Никак не могу сообразить от чего отталкиваться. Думал делать проверки на каждый день недели. Может есть метод получение пятницы текущей недели? Помоги пожалуйста.
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
BoShurik
@BoShurik
Symfony developer
$dateTime = new \DateTime('this friday');
echo $dateTime->format('Y-m-d');


Если я правильно понял задачу то вот полный код (написал на коленке, надо дебажить):
$now = new \DateTime();
$friday = new \DateTime('this friday');
 
$result = new \DateTime('next monday');
if ($now->format('Y-m-d') == $friday->format('Y-m-d') && 
    $now->format('H:i:s') >= '14:00:00') {
    $result->add(new \DateInterval('P1W'));
} elseif ($friday < $now) {
    $result->add(new \DateInterval('P1W'));
}
 
echo $result->format('Y-m-d');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы