我有一個顯示事件的網站;每個事件可以有x個日期(無限制)。 我需要在主頁上顯示最接近今天日期的事件。通過n個日期訂購商品並獲取距離最近的日期
這應該是一件不容易的事情,但它由於某種原因不起作用。任何幫助,將不勝感激。
所以這裏是我的功能,選擇主要事件。事件先前已從數據庫中提取,鏈接日期存儲在關鍵「日期」下。它們通過參數「$ events」傳遞給函數。 每個日期都是作爲(int)unix日期。
function getMainEvent(&$events){
$today = time();
$currentEvent = end($events); //selecting the last entered event (most likely to be the main event)
$currentEventLast = max($currentEvent['dates']); //selecting the highest date linked to that event
foreach($events as $k=>&$event){ //looping through events
$date = min($event['dates']); //selecting the lowest date for the current event
if($date>$today && $date<$currentEventLast){
//if $date is higher than today (so it's not in the past), but lower than main event's date...
$currentEvent = &$event; //make that event the main event
$currentEventLast = max($currentEvent['dates']); //select the latest date of that event
}
}
return $currentEvent;
}
您是否必須在PHP中對$ events結構按原樣執行此操作,或者您是否可以修改SQL查詢以僅爲您提供所需的事件? – Thilo 2011-05-01 19:33:06
不,我可以查詢數據庫,但由於我無論如何都將所有事件列在底部,我寧願只是使用它。這不是一個性能的事情(這是一個非常小的網站,兩個數據庫調用幾乎不會成爲問題),所以如果你有一個想法,我可以去查詢,但我寧願在PHP中這樣做,如果只是爲了學習。 – Xananax 2011-05-03 07:27:27