我必须制定一个预订系统,在该系统上可以最少预订6个小时的会客室,因此,当用户在某个日期进行预订时,例如2012年4月24日,他然后选择租赁的开始时间(00:00-06 :00,06:00-12:00,12:00-18:00,18:00-24:00).用户想要租用房间的总小时数(6、12、18等).
日期存储为整数(时间戳).
我对此有两个问题;我不知道如何接收一个月中所有仍可能保留房间的日期,以及如何检查是否有可能进行新的保留.
我知道如何计算用户输入的开始日期和结束日期,但是我找不到正确的mysql查询或php检查可用性.
这可能真的很简单,但由于某种原因,因为结束日期总是可变的,所以我找不到答案.
在此先感谢大家!
EDIT表结构:保留
id int(11)
user_id int(11)
reservation_name varchar(255)
start_date int(11)
end_date int(11)
我相信保留是唯一相关的
解决方法:
您会发现很难在MySQL中生成可用天数列表.我建议您改为选择所需月份内预订日期的有序列表,然后在PHP中循环浏览该月的所有日期,如果与MySQL查询中的下一个预订日期相匹配,则跳过这一天. this question的答案将帮助您构建要在PHP中循环的日期.用伪代码:
$booked_days = sql(select all booked days in month order by day);
for each $day in month {
if $day != current($booked_days) {
// $day is not booked
} else advance_next($booked_days);
}
要检查是否有可能进行新的预订,今天您可能想看看我对a very similar question的回答.
标签:php,mysql,timestamp,date
来源: https://codeday.me/bug/20191009/1877839.html