我有一个下拉菜单,其中显示考试的名称、日期和时间,我想做的是,如果从当前日期或时间过去了考试日期,则文本显示为红色,否则文本显示为绿色。
我遇到的问题是,如果当前日期是 2012 年 10 月 11 日(即今天),并且考试的日期和时间如下:
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>";