php – 确定商店是否开放?

前端之家收集整理的这篇文章主要介绍了php – 确定商店是否开放?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
PHPMysqL中 – 如何确定Store是打开还是关闭(返回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开放’

在过去,我通过使用没有日期的时间戳(午夜后的秒数)处理了这个问题.所以周六,开盘价为62100,收盘价为91800.

我的想法是,当一个关闭跨越午夜时,这将删除所需的一些逻辑,因为您只需要比较从日期开始以来的秒数到时间范围.

并且很容易检查它是否仍然从’昨天’打开 – 只需将86400添加到当前’时间'(自当天开始以来的秒数)并检查前一天.

可能都是单个sql语句.

猜你在找的PHP相关文章