我正在做一个租车网站,可以在给定的时间段内预订汽车。例如,在 01.01.2011 - 10.01.2011 和 15.01.2011 - 25.01.2011 之间预订了一辆车。 (dd.mm.yyyy)
所以这辆车在 11.01.2011 - 14.01.2011 之间可用。
我应该如何保存预订记录?如果我创建一个名为 'reservations'
的表并为 'carID' 'startDate' 'endDate'
创建列,我如何检查汽车在两个日期之间是否完全可用?或者我应该如何创建预订表?
最佳答案
我会使用时间戳来做到这一点。我知道 MySQL 内置了 DATETIME 字段类型,但我通常更喜欢使用时间戳。不管怎样,这就是我的处理方式
车辆
表:
id | name
---------
1 | Ford Mustang
预订
表:
id | vehicle_id | start_time | end_time
----------------------------------------
1 | 1 | 130500040 | 130599304
其中 start_time 和 end_time 是 UNIX 时间戳。
然后,当您想查看某个日期是否有汽车(根据哪辆汽车更改查询中的 vehicle_id)时:
$start_date = strtotime($start_date);
$end_date = strtotime($end_date);
$query = mysql_query("SELECT * FROM `reservations` WHERE `vehicle_id`=1 AND (`start_date`>".$start_date." AND `end_date`<".$end_date.") OR (`start_date`<".$start_date." AND `end_date`>".$end_date.") OR (`start_date<".$end_date." AND `end_date`>".$end_date.") OR (`start_date`<".$start_date." AND `end_date`>".$start_date.")");
if (mysql_num_rows()<1)
{
echo "The vehicle is available";
}
关于php - 租车 - 如何检查两个日期之间是否有车可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6138548/