Задать вопрос

Как решить такую задачу с манипуляцией времени в 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. Те, через неделю.

Никак не могу сообразить от чего отталкиваться. Думал делать проверки на каждый день недели. Может есть метод получение пятницы текущей недели? Помоги пожалуйста.
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽