我想使用 mysql 和 php 检查日期和时间冲突。
我的时间戳是使用 php 代码格式化的,例如:
$timestamp_start = date("Y-m-d H:i:s", mktime(date("H", strtotime($start_time)), date("i", strtotime($start_time)), 0, $date[0], $date[1], $date[2]));
$timestamp_end = date("Y-m-d H:i:s", mktime(date("H", strtotime($end_time)), date("i", strtotime($end_time)), 0, $date[0], $date[1], $date[2]));
我做mysql检查如下:
$sql = "SELECT * FROM `$info[table]` WHERE ((`timestamp_start` BETWEEN '$timestamp_start' AND '$timestamp_end') OR (`timestamp_end` BETWEEN '$timestamp_start' AND '$timestamp_end'))";
这是我从这里得到的代码!哈哈。
现在的问题是,如果房间被安排在 2013 年 10 月 31 日上午 08:00 到下午 05:00,而其他人试图将其安排在 2013 年 10 月 31 日下午 5:00 到晚上 9:00,他们收到一条消息,指出房间已在使用中。现在我一开始并不介意这一点,因为它迫使房间在事件之间至少有 30 分钟的间隔,但我的老板说房间应该能够背靠背安排。
如果一直预订到下午 05:00,如何修改我的 sql 语句以允许某人在下午 5:00 请求房间?
这似乎有效
$sql = "SELECT * FROM `$info[table]` WHERE `approved`='true' AND (`timestamp_start` < '$timestamp_end' AND `timestamp_end` > '$timestamp_start')";