時間枠に基づいて、ショップが開いているか閉じているかを示すmySQLテーブルがあります。
shift table
--------------
shift_id
day_of_week (1-7 : Monday-Sunday)
open_time (time, default NULL)
close_time (time, default NULL)
type (1 || 2)
フィールドタイプの説明: 1は同じ日の最初の時間枠を示し、2はその時間枠が同じ日の2番目の時間枠であることを示します。たとえば、ショップは13:00〜15:00および18:00〜01:00にオープンします。
以下の方法で当日を取得しています。
$jd = cal_to_jd(CAL_GREGORIAN,date("m"),date("d"),date("Y"));
$day = jddayofweek($jd, 0);
switch($day){
case 0:
$curDay = 7;
break;
default:
$curDay = $day;
break;
}
return $curDay;
以下の方法で現在時刻を取得しています。
$timeString = "%H:%i:%s";
$curTime = mdate($timeString, time());
複雑な例は次のとおりです。
現在の日:月曜日
現在の時刻:02:00。
日曜日の時間枠:15:00〜18:00および21:00〜02:30。
月曜日の時間枠:08:30-15:30。
明らかにシフトはOPENですが、現在の日である月曜日ではなく、日曜日の時間枠に基づいています。
テーブルをクエリする(または必要に応じてテーブルを変更する)ための最良の方法、またはシフトが開いているか閉じているかを特定の日の特定の時間に毎回定義する100%正確な方法は何ですか?