Здравствуйте, уважаемые форумчане.
Есть задумка сделать "График работы" в блоке с помощью php кода, чтобы выдавалось как в 2gis.
График работы с пн-пт с 10:00 до 18:00. С учётом часового пояса GMT +6.
Если сейчас рабочее время, то будет написано: "Сегодня работаем до 18:00"
Если до закрытия меньше часа например сейчас 17:11, будет написано: "Закроемся через 49 минут"
Если сейчас с 18:00 до 23:59, будет написано "Закрыто, откроемся завтра в 10:00"
Если сейчас с 00 до 09:00, будет написано "Откроемся сегодня в 10:00"
Если с 09:01 до 09:59, будет написано "Откроемся через XX минут"
Если сегодня суббота, то будет написано, "Откроемся в понедельник в 10:00"
Если воскресенье, то "Откроемся завтра в 10:00"
Есть вот такой код, но в нём учтены не все условия.
<?php
date_default_timezone_set("GMT+6"); // часовой пояс
$thetime = date("H"); // 24-часовой формат
if($thetime > 00 AND $thetime < 10) { echo "Сейчас не работаем. Откроемся сегодня в 10:00";}
elseif($thetime > 10 AND $thetime < 18) { echo "Сегодня работаем до 18:00";}
elseif($thetime > 18 AND $thetime < 00) { echo "Сейчас не работаем. Откроемся завтра в 10:00";}
?>
Комментарии
А вопрос то в чем?
Вопрос в том. как реализовать все условия.
По-моему Вам нужно всего лишь 3 "временные" точки в формате unix timestamp.
1.Время открытия на текущую дату.
2.Время закрытия на текущую дату.
3.Время открытия на следующую рабочую дату.
Получается 3 диапазона, ограниченные этими "временными точками":
1. Сегодня, до открытия.
2. Между открытием и закрытием.
3. От закрытия до следующего открытия.
Берете текущее время ( timestamp), проверяете, в какой из диапазонов это время входит, и на основании этого диапазона
получаете необходимые данные простыми математическими действиями с timestamp-ами (сколько времени прошло с открытия, сколько осталось до закрытия, сколько осталось до открытия и т.п.) и выводите необходимое уведомление.
Я просто в php не силён, не подскажите, как это реализовать?
DateTime курите лучше. Таймстемпы больше для указания даты-времени, а не для временных диапазонов (если нет намерения создавать календарь на каждый день).
Я бы сделал следующим образом:
Ещё можно было добавление праздников, типа нового года и красных дней календаря.
Ну, да.
А еще, можно добавить настройки перерывов на обед...
Тут все от фантазии и задачи зависит.
Можно все.
Теперь бы это "в коде"))
Не вопрос - заказывайте в личку, с ТЗ.
Попробуйте модуль Office Hours:
https://www.drupal.org/project/office_hours
Я смотрел этот модуль, но как понял, в нём просто настраивается график полностью по дням и выводится в виде списка.
Пн - 10-18
Вт - 10-18
Ср - 10-18
Чт - 10-18
Пт - 10-18
Сб - Выходной
Вс - Выходной