租车 - 如何检查两个日期之间是否有车?

SmT*_*SmT 2 html php mysql date

我正在租一个汽车站点,汽车可以保留给定的时间段.例如,汽车之间保留01.01.2011 - 10.01.2011 and 15.01.2011 - 25.01.2011. (dd.mm.yyyy)

所以汽车之间可用 11.01.2011 - 14.01.2011.

我该如何保留预订记录?如果我创建一个名为的表'reservations'并创建列,'carID' 'startDate' 'endDate'我该如何检查汽车是否在两个日期之间完全可用?或者我应该如何创建预订表?

Dor*_*use 5

我是用时间戳做的.我知道MySQL内置了DATETIME字段类型,但我通常更喜欢使用时间戳.无论如何,这是我将如何去做

vehicles 表:

id | name 
---------
1  | Ford Mustang
Run Code Online (Sandbox Code Playgroud)

reservations 表:

id | vehicle_id | start_time | end_time
----------------------------------------
1  | 1          | 130500040  | 130599304
Run Code Online (Sandbox Code Playgroud)

其中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";
}
Run Code Online (Sandbox Code Playgroud)