dscojuxf69080 2013-04-29 19:24
浏览 391
已采纳

将当前日期/时间与数据库中的日期/时间进行比较

I need to create something to display an image based on the current date and time. I have an SQL table set up that looks like this:

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

What I need to do is compare the start date and end date to the current date, and if the current date falls within the startdate and enddate, then display the imgfile.

I'm not sure how to go about this, but this is what I tried.

//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];
    }
}
?>

Right now, it doesn't show anything inside of the entire while statement. Am I at least on the right track?

  • 写回答

2条回答 默认 最新

  • dongzhen4180 2013-04-29 19:26
    关注

    You should do it in your SQL query instead of PHP. For example:

    SELECT * FROM table WHERE CURRENT_DATE BETWEEN startdate AND enddate;
    

    CURRENT_DATE() is a MySQL function that returns the current date, as the name suggests. It is one of a few special functions that have an alias without the parentheses.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?