0

以下のコードを機能させるのに問題があります。基本的に、24時間形式のタイムスタンプ変数の値が1:00 PM、12時間形式に変換された後かどうかを確認しています。値をエコーバックすると、常に午後6時と表示されます。何が問題ですか?

これが私が$timeToday変数を取得する方法です

$timeToday = date("H:i A");

正しく機能していないコードは次のとおりです。

 if ($timeToday>"12:59"){
            $timeConverted = date("h:i A", strtotime($timeToday));
            echo "You clocked out at: " . $timeConverted . "<br>";
        } else {
        echo "You clocked out at: " . $timeToday . "<br>";
        }
4

1 に答える 1

3

同じ形式ではない2つの文字列を比較しています。$timeTodayはAM/PMですが、24時間制に対応しています。

また、コードはどちらの方法でもAM/PMを出力します。私があなたを正しく理解しているなら、あなたは午前を印刷するのではなく、午後だけを印刷したいと思います。

 $format = strtotime($timeToday) > strtotime("12:59") ? "h:i A" : "h:i";
 $timeConverted = date($format, strtotime($timeToday));
 echo "You clocked out at: " . $timeConverted . "<br>";
于 2013-01-16T03:48:08.260 に答える