테스트 사이트 - 개발 중인 베타 버전입니다

시간체크 질문입니다. 채택완료

humanb2box 5년 전 조회 943

</p>

<p> </p>

<pre>
$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;
}</pre>

<p> </p>

<pre>
$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;
}</pre>

<p>

 

이 코드를 활용하면

 

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

 

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

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인