В PHP и MySQL — как определить, открыто ли хранилище или закрыто (возвратить true или false)?
Кроме того, как получить следующие часы работы, если магазин закрыт?
Пример таблицы Opening_Hours
:
+----+---------+----------+-----------+------------+---------+
| id | shop_id | week_day | open_hour | close_hour | enabled |
+----+---------+----------+-----------+------------+---------+
| 1 | 1 | 1 | 16:30:00 | 23:30:00 | 1 |
| 2 | 1 | 2 | 16:30:00 | 23:30:00 | 1 |
| 3 | 1 | 3 | 16:30:00 | 23:30:00 | 0 |
| 4 | 1 | 4 | 16:30:00 | 23:30:00 | 1 |
| 5 | 1 | 5 | 10:00:00 | 13:00:00 | 1 |
| 6 | 1 | 5 | 17:15:00 | 00:30:00 | 1 |
| 7 | 1 | 6 | 17:15:00 | 01:30:00 | 1 |
| 8 | 1 | 7 | 16:30:00 | 23:30:00 | 0 |
+----+---------+----------+-----------+------------+---------+
Поля open_hour
и close_hour
являются полями типа TIME. Дизайн стола в порядке?
Пример текущего времени:
Текущее время: Вт 23:00, - Вывод: Открыто, 'Открыто в Вт 16:30 - 23:30'
Текущее время : Вт 23:40, - Вывод: Закрыть, "Открыто в четверг с 16:30 до 23:30"
Открыто в четверг, потому что Opening_Hours.week_day = 3
отключен
Теперь, как обрабатывать полночное время? Это усложняется.
Как видите, в субботу (Opening_Hours.week_day = 5
) он открыт с 17:15 до 01:30 (закрыт на следующий день в воскресенье)
Если текущее время Воскресенье, 01:15, тогда магазин будет по-прежнему открыт на базе Opening_Hours.week_day = 5
.
Вывод: Открыто, 'Открыто в Сб 17:15 - 01:30'