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

时间:2013-01-21 23:48:53

标签: php mysql datetime web-applications

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

我有这个预订表有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

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

1 个答案:

答案 0 :(得分:1)

如果您正在使用MySQL DateTime字段,那么您应该能够将从DB提取的字符串转换为您可以使用的字符串,例如: strtotime和PHP的其他日期函数。

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