遍历日期并获得两个日期之间的最小日差


Traversing into dates and getting the lowest day difference between two dates

你好,这是我今年第一次问问题。请帮帮我,我求求你了。

我有一个具有开始日期和结束日期的预订表,现在我想遍历它们并记下它们与我当前日期预订的不同间隔。在我得到所有不同的间隔之后,我也想遍历到那个间隔,并获得可能或最近的一天。

最近的一天是0(enddate == startdate),因为入住时间是固定的。

假设在同一房间预订了一堆日期。

bookingstart = '2013-02-5 14:00:00' bookingend = '2013-02-7 14:00:00'
bookingstart = '2013-02-13 14:00:00' bookingend = '2013-02-16 14:00:00'
bookingstart = '2013-01-22 14:00:00' bookingend = '2013-02-23 14:00:00'

现在初始代码是这样的:

$newbookingstart = '2013-01-24 14:00:00'
$newbookingend = '2013-01-27 14:00:00';
$sql = mysql_query("SELECT enddate, startdate FROM reservation WHERE rmlocation = 'RM24'");
if (!$sql) {
exit('Error: ' . mysql_error());
}
$diffInterval = array();

while ($row = mysql_fetch_array($sql)) {
if ($row['enddate'] >= $newbookingstart && $newbookingend <= $row['stardate']) {
    $diffInterval .= $row['startdate'] . $row['enddate'] . $row['rmlocation'];
}
}
//Get the $diffInterval, traverse and get the lowest date interval posible

我的问题是如何正确获取这些代码,尤其是在数据库中获取数据时。如何改进我在同一个房间中搜索所有其他结束日期和开始日期的搜索。

如果您使用的是MySQL DateTime字段,它应该能够将从数据库获取的字符串转换为您可以使用计算的内容,例如strtotime和PHP的其他日期函数。

另一种可能性是直接在SQL中计算。