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
我的問題是,如何在數據庫獲取數據得到這些代碼的權利更是如此。 如何提高我在同一個房間內搜索所有其他enddates和startdates的搜索。
哦,我忘了我知道如何使用DateTime php函數減去diff時間。但我必須確保即時獲取數據,以便即時查詢如何遍歷並獲得可用空間。你如何在MySQL中做到這一點? –
PHP目前僅從DB提供字符串,本機函數無法理解MYSQL數據類型。由於PHP是一種動態的,無類型的語言,或多或少,這種行爲是在常見的地方。 對於MYSQL,您可以將計算放在語句的WHERE子句中。有幾種函數可以計算日期(http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html)。只需改變你的狀況,你就可以得到所需的結果。 –