시간체크 질문입니다.
본문
$compare_openTime = strtotime($OPEN_TIME.":".$OPEN_MINUTES);
$time_morning_in = date("H:i", strtotime("00:00 - 30 Minute"));
for($i = 0; $i < 24 ; $i++ ){
$time_morning_in = date("H:i", strtotime($time_morning_in." + 30 Minute"));
$time_morning[$i]['VAL'] = $time_morning_in;
}
$time_afternoon_in = date("H:i", strtotime("12:00 - 30 Minute"));
for($i = 0; $i < 24 ; $i++ ){
$time_afternoon_in = date("H:i", strtotime($time_afternoon_in." + 30 Minute"));
$time_afternoon[$i]['VAL'] = $time_afternoon_in;
}
이 코드를 활용하면
00:00 , 00:30, 01:00 ....................... 11:30 는 오전
총 24개의 오전버튼과
12:00 ....................... 23:30 은 오후
총 24개의 오후 버튼이 생성되게 됩니다.
여기서 질문은 db에서 추출한 영업시간(예: 17:00 ~ 03:00) 외의 버튼에는 active를 주어야 하는데
정상적인 영업 오전 10시부터 오후 10시까지 이런건
if ($compare_lastTime <= $compare) { $time_afternoon[$i]['CHK'] = 'active'; }
이렇게 비교를 해서 오후 10시 30분 부터 오전 9시 30분까지 active를 줄 수 있겠는데
오후 5시 부터 다음날 새벽 3시까지 이런 영업시간이면
전혀 다른 결과가 나오더라고요,,, 어떻게 접근을 해야할지.. 도움좀 부탁드립니다.
03:00 ~ 16:30까지는 active가 먹혀야...
!-->
답변 1
시간 구간이 하루를 오늘을 넘기니 이건 하루 로 계산하시는게아니라
2일 즉 48시간으로 연산 하셔야할듯합니다.
for($i = 0; $i < 24 ; $i++ ){ 이 부분을
for($i = 0; $i < 48 ; $i++ ){ 이렇게 48 시간으로 하시고 .
영업시간을 불러오는 동시에 해당일자를 포함 하셔서 연산 하셔야 할거 같아요 .
답변을 작성하시기 전에 로그인 해주세요.