0

可能重复:
PHP - 如何检查当前日期/时间是否超过设定的日期/时间?

我在下方有一个下拉菜单,其中显示了考试的名称、日期和时间。

$sessionHTML = '<select name="session" id="sessionsDrop">'.PHP_EOL;
$sessionHTML .= '<option value="">Please Select</option>'.PHP_EOL;           

while ( $sessionqrystmt->fetch() ) {
    $sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), $dbSessionTime) . PHP_EOL;  
}


$sessionHTML .= '</select>';

我想要做的是,如果考试的日期和时间已通过当前日期和时间,则将这些选项的文本显示为红色,如果尚未通过,则将这些选项的文本显示为绿色。

例如当前日期/时间:24/09/2012 09:00:00(这只是一个示例,我想要实际的当前日期和时间。

AAA - 13/08/2012 - This text should be red
BVF - 27/01/2013 - This text should be green

有谁知道如何做到这一点?

4

3 回答 3

2
<style>
.red{ color:red; }
.green{ color:green; }
</style>

while ( $sessionqrystmt->fetch() ) {
    if(strtotime(date("d-m-Y h:i:s")) > strtotime($dbSessionDate)){
         $class = 'red';
    } else {
         $class = 'green';
    }
    $sessionHTML .= sprintf("<option value='%s' class='%s'>%s - %s - %s</option>", $dbSessionId, $class, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), $dbSessionTime) . PHP_EOL;  
}

将您当前的日期与 $dbSessionDate 进行比较,然后确定班级。

$now = date("Y-m-d h:i:s");
$date = "2012-11-08 07:00:35";

echo $now."<br/>".$date."<br/>";

if(strtotime($now) > strtotime($date)){
    echo "RED";
} else {
    echo "GREEN";
}

这是另一个关于比较时间的简单示例。我猜你可以根据这个调整你的代码。

于 2012-11-08T03:22:32.980 回答
0

你想用 PHP 还是 javascript 来做这件事?使用 PHP 似乎更好,因为您不知道客户端的系统时钟是否设置为正确的时间。

假设客户端与服务器处于同一时区,因此从其他位置访问的人(可能是度假或学习旅行的学生)可能会得到不正确的信息。

在任何情况下,还应显示视图上次更新的时间。

于 2012-11-08T03:52:06.327 回答
0
if ( time( ) > strtotime( "date here" ) ) {
    // current time is greater than date
}

:)

于 2012-11-08T03:19:55.123 回答