시간체크 질문입니다.

시간체크 질문입니다.

QA

시간체크 질문입니다.

본문


 

$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 시간으로 하시고 .

 

영업시간을 불러오는 동시에 해당일자를 포함 하셔서 연산 하셔야 할거 같아요 . 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 306
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT