0

営業時間中にのみライブ チャット リンクを Web サイトに表示しようとしています。以下のコードは午後には機能するようですが、朝には機能しません。理由はわかりません...$startそして$endMySQLデータベースから受け取った値ですが、私の例ではそれらをハードコーディングしました例を簡単にします。

$LinkStatus = "on";

$start = 9:00:00;
$end = 23:00:00;
$current_time = date('G:i:s'); //9:35:00

if (($start > $current_time) || ($end < $current_time)) {
    $LinkStatus = "off"; 
}

開始時間が現在の時間よりも大きい場合、ビジネスはまだ開いていません。終了時刻が現在の時刻より前の場合は、時間外です。午前 9 時から午後 11 時 (23:00) の間はいつでも、これらの条件のいずれも true に$LinkStatusならないため、そのままにしておく必要があります"on"。ただし、現在はそうしていないようです。何かが に設定してい"off"ます。

if ステートメントの上と下に変数をエコーし​​たので、この if ステートメントが原因で変数が に設定されていることを確認できます"off"

私のコード例からわかるように、私は PHP に関してはあまり詳しくありません。どんな助けでも大歓迎です。

4

2 に答える 2

1
date('G:i:s')  // 24 hours time without leading zero for hour

... '9' > '10' のように、文字列としてうまく並べ替えられません。

代わりに、先頭にゼロを付けて 24 時間制を使用してください。これにより、正しい並べ替えが '09' < '10' になります。

date('H:i:s')  // 24 hour time with leading zero for hour
于 2013-07-18T15:02:59.460 に答える