php – 确定商店是否开放?
在
PHP和MySQL中 – 如何确定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开放’ 星期四开放,因为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语句. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |