2013-04-29 47 views
2

我需要創建一些內容以顯示基於當前日期和時間的圖像。我有一個SQL表設置看起來像這樣:將當前日期/時間與數據庫中的日期/時間進行比較

eventid | startdate | enddate | imgfile | status 
6  | 2013-04-29 | 2013-05-03 | finals.jpg | active 

我需要做的是比較的開始日期和結束日期爲當前日期,如果當前日期在開始日期和結束日期之內,則顯示img文件。

我不知道該怎麼做,但這是我試過的。

//get current date and time 
$currentdatetime = strtotime(now); 
$formatteddatetime = date("y-m-d", $currentdatetime); 

while($row=mysql_fetch_array($getimage)) 
{ 
    //get variable for startdate 
    $formattedstartdate = date("y-m-d", $row[startdate]); 
    $formattedenddate = date("y-m-d", $row[enddate]); 
    if($formatteddatetime >= $formattedstartdate AND $formatteddatetime <= $formattedenddate AND $row[status] == 'active') 
    { 
     echo $row[imgfile]; 
    } 
} 
?> 

現在,它不顯示任何內部的整個while語句。我至少在正確的軌道上?

回答

2

你應該在你的SQL查詢而不是PHP中執行它。例如:

SELECT * FROM table WHERE CURRENT_DATE BETWEEN startdate AND enddate; 

CURRENT_DATE()是一個MySQL的函數,返回當前日期,顧名思義。它是一些沒有括號的別名的特殊函數之一。

+0

你真棒,它工作!非常感謝。我仍然只是學習SQL,所以我不知道存在,哈哈。 – user2333389 2013-04-29 22:04:51

+0

完美的解決方案,讓數據庫做好工作 – 2013-04-30 00:22:45

3

CURRENT_DATE根據數字或字符串是否在函數中使用,以'YYYY-MM-DD'格式或YYYYMMDD格式返回當前日期。 CURDATE()和CURRENT_DATE()是CURRENT_DATE的同義詞。

相關問題