我有一個下拉菜單,顯示考試的名稱,日期和時間,我想要做的是如果考試日期已經從當前日期或時間傳遞過來,那麼文本顯示爲紅色,否則文本顯示爲綠色。我有下拉文本應該是綠色不是紅色
問題是,如果當前日期是2012年10月11日(也就是今天),如果考試有此日期和時間如下:
2012年10月11日,16:00: 00
它以紅色而不是綠色顯示文字。問題在於它沒有識別當前時間,它認爲它是當前日期,應該是紅色的,但是由於當前時間在當前日期還沒有過去,所以它應該是綠色的。
數據庫將日期存儲爲2012-11-10,並將數據庫中的時間存儲爲16:00:00。雖然在下拉如提到存儲爲:2012年10月11日,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;
}
$現在應該是當前的日期和時間,$ dbSessionDate應該是2012年10月11日
UPDATE:
$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>";
「或許應該刪除jQuery和JavaScript代碼,並添加PHP代碼。 – broofa
@broofa:已經做到了。 – Aziz
@CMB:你可以顯示'strtotime($ now)'和'strtotime($ dbSessionDate)'的值是什麼?因爲顯然,其中一個並不完全是你想象的。 – Aziz