2010-11-18 47 views
1

我有一個事件日曆,以開始日期的順序顯示事件。一切都很好,但有一個問題。今天發生的事件不會顯示。我相信我的「如果」聲明在他們通過後消除事件是問題。PHP事件的日期排序

<? while($row = mysql_fetch_assoc($result)) { 
$id = $row['id']; 
$title = $row['title']; 
$text = $row['text']; 
$image_url = $row['image_url']; 
$start_date = date('F d, Y', strtotime($row['start_date'])); 
$start_hour = $row['start_hour']; 
$start_minute = $row['start_minute']; 
$start_am_pm = $row['start_am_pm']; 
$end_date = date('F d, Y', strtotime($row['end_date'])); 
$end_hour = $row['end_hour']; 
$end_minute = $row['end_minute']; 
$end_am_pm = $row['end_am_pm']; 
$tba = $row['tba']; 

if(strtotime($row['end_date']) > date('U')) { 
?> 
+0

什麼是你的查詢正在運行,這個問題是存在的。此外,沒有理由執行'$ id = $ row ['id']',只需使用'$ row ['id']'保持代碼清潔並節省時間 – Webnet 2010-11-18 18:20:05

回答

3

首先的比較我只是想指出的是:

date('U') == time() 

所以,你可以使用time而不是date

現在爲您的問題。如果您的活動的end_date設置爲今天,則可能在一天的開始時間(即:2010-11-18 00:00:00)。這可能是爲什麼你的條件不起作用,因爲現在是午夜過去了,當前的日期/時間大於end_date

試試這個:

if (strtotime($row['end_date']) == strtotime('TODAY')) { 
    // event is today 
} 
0

我猜$ row ['end_date']只返回日期不是時間。所以strtotime($row['end_date']) will = 12:00 AM和date('U')將等於返回當前時間。

所以,如果你運行此上午的12:01 $行的日期[ 'END_DATE'],你有

if("12:00AM today" > "12:01AM today") { 

嘗試

if (strtotime($row['end_date']) >= strtotime(date('Y-m-d'))) {