0

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

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

最近的一天是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

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

4

1 回答 1

1

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

其他可能性是直接在 SQL 中计算。

于 2013-01-21T23:58:55.840 回答