你好我今年第一次提问。 请帮帮我,我求求你。
我有这个预订表有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
我的问题是如何正确地获取这些代码,特别是在数据库中获取数据。 如何改善我在同一房间搜索所有其他结束日期和开始日期。
答案 0 :(得分:1)
如果您正在使用MySQL DateTime字段,那么您应该能够将从DB提取的字符串转换为您可以使用的字符串,例如: strtotime和PHP的其他日期函数。
其他可能性是直接在SQL中计算。