Wordpressベースのウェブサイトでビジネスを開いているときに通知を表示し、データベースから情報を取得しようとしています。データは、個別のデータベースエントリとして、毎日の開始/終了時間として単純に保存されます。時間が1日以内であれば、それはかなり簡単です。しかし、バー/レストランの場合、閉店時間は技術的には翌日であるため、複雑になります。例として火曜日を使用します。
$tuesdayopen = strtotime("10:00");
$tuesdayclose = strtotime("23:00");
$now = strtotime("now");
if ($now >= $tuesdayopen && $now <= $tuesdayclose) {
echo "We are open!";
} else {
echo "We are closed!";
}
したがって、これはそのままで正常に機能します。そして、閉店時間が翌日になるとしたら、私にもそのための洗練されていない解決策があります。
$tuesdayopen = strtotime("10:00");
$tuesdayclose = strtotime("02:00");
$now = strtotime("now");
if ($tuesdayclose >= strtotime("00:00") && $tuesdayclose <= strtotime("04:00")):
$tuesdayclose = strtotime("+1 day", $tuesdayclose);
endif;
if ($now >= $tuesdayopen && $now <= $tuesdayclose) {
echo "We are open!";
} else {
echo "We are closed!";
}
それで、私の問題はどこにありますか?問題は、$nowが真夜中過ぎになってしまうことです。したがって、誰かが火曜日の夜、真夜中以降にページにアクセスした場合、技術的には水曜日の朝になります。つまり、私の完全なスクリプトは水曜日に移動します。午前0時から午前4時の間であることを認識する必要があるため、前日の開店時間と閉店時間を使用して、開店しているかどうかを判断します(ただし、閉店時間が深夜以降の場合のみ、それ以外の場合は水曜日に移動するのが適切です。する)。うまくいけば、私はそれをうまく説明しました。私は自分で何かを書いてみましたが、コードは肥大化した混乱であり、最終的には機能しません。だから私はここにそれを含めることを気にしません。