0

試験の名前、日付、時刻を表示するドロップダウンメニューがあります。現在の日付または時刻から試験日が過ぎている場合、テキストは赤で表示され、そうでない場合は緑で表示されます。

私が抱えている問題は、現在の日付が2012年10月11日(今日)であり、試験の日付と時刻が以下の場合です。

2012年10月11日、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>";
4

1 に答える 1

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)
于 2012-11-10T15:55:48.697 に答える