下拉列表中的文本应为绿色而不是红色

时间:2012-11-10 15:06:39

标签: html css date-comparison

我有一个下拉菜单,显示考试的姓名,日期和时间,我想要做的是,如果从当前日期或时间开始考试日期,则文本显示为红色,否则为文本是绿色的。

我遇到的问题是,如果当前日期是10-11-2012(今天),并且考试的日期和时间如下:

10-11-2012,16:00:00

它以红色显示文本而不是绿色。问题是它没有识别当前时间,它认为因为它是当前日期,它应该是红色,但是因为当前时间没有在当前日期过去,所以它应该是绿色的。

数据库将日期存储为2012-11-10,将数据库中的时间存储为16:00:00。在提到的下拉列表中,它存储为:10-11-2012,16:00:00

以下是代码:

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

...

    $now = date("Y-m-d h:i:s");
    while ( $sessionqrystmt->fetch() ) {
       if(strtotime($now) > 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;
        }

$ now应该是当前的日期和时间,$ dbSessionDate应该是10-11-2012

更新

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

$now = date("Y-m-d H:i:s");
echo strtotime($now).'<br>';
echo strtotime('10-11-2012, 16:00:00');
while ( $sessionqrystmt->fetch() ) {
   if(strtotime($now) > 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)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;
    }


$sessionHTML .= '</select>';

$assessmentform = "<form action='".htmlentities($_SERVER['PHP_SELF'])."' method='post'>
<p><strong>Assessments:</strong> {$sessionHTML} </p>   
</form>";

1 个答案:

答案 0 :(得分:0)

代码似乎没问题。尝试:

$now = date("Y-m-d h:i:s");
echo strtotime($now).'<br>';
echo strtotime('10-11-2012, 16:00:00');

并检查服务器时间。

<强>更新

替换:

$sessionHTML .= sprintf("<option value='%s' class='%s'>%s - %s - %s</option>", $dbSessionId, $class, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;

使用:

$sessionHTML .= sprintf("<option value='%s' style='color: %s'>%s - %s - %s</option>", $dbSessionId, $class, $dbSessionName, date("d-m-Y",strtotime($dbSessionDate)), date("H:i",strtotime($dbSessionTime))) . PHP_EOL;

防止css错误。

或替换:

strtotime($now) > strtotime($dbSessionDate)

使用:

strtotime($now) < strtotime($dbSessionDate)