if 구문좀 봐주세요.

if 구문좀 봐주세요.

QA

if 구문좀 봐주세요.

본문

안녕하세요.

 

구글링해서 공부한대로 넣은것 같은데...결과값이 자꾸 이상하게 나오네요.

아래에서 아래 규칙이 안맞고 있습니다.

왜 그런가요? 

 }else if ($start_day == $end_day){
        echo "행사 진행 중 | 행사 당일";

 

 


<?php
    $today = date("Ymd");//오늘
    $start_day = $list[$i]['wr_8']; // 시작일
    $end_day = $list[$i]['wr_9']; // 종료일
    $rest_day = $list[$i]['wr_9'] - $today;
    if ($today > $end_day){
    echo "<span style=color:#ff0000>행사 종료</span>";
    }else if ($start_day <= $today && $today <= $end_day){
        echo "<span style=color:#ff0000>행사 진행 중</span> | <span style=color:#000000>종료 ".abs($rest_day)."일전</span>";
    }else if ($start_day == $end_day){
        echo "행사 진행 중 | 행사 당일";
    }else{
        echo "<span style=color:#0000FF>행사 진행 전</span> | 신청가능<span style=color:#ff0000>▼</span>";
    }
?>

 

 

그리고 혹시...

날짜 계산을 편하게 하기 위해 날짜 표시 방법을 

20211218 이렇게 나타내고 있습니다.

하지만 결과값은  

2021년 12월 18일 으로 나타내고 싶은데 글자를 파싱해서 나타내면 된다는 것까지는 알겠는데..

검색해봐도 잘 모르겠네요. 힌트나 관련 사이트 알려주시면 감사하겠습니다.

 

감사합니다.

이 질문에 댓글 쓰기 :

답변 2


<?php 
if ($today < $start_day) echo "행사이전";
else {
    if ($today < $end_day) echo "행사진행 중";
    else if ($today == $end_day) echo "행사 당일";
    else echo "행사종료";
}
?>

 

며칠 남음. 이건 단순히 행사종료일에서 행사진행일을 빼는 방법으로는 안 됩니다.

왜냐하면 해가 넘어가거나 달이 넘어갈 경우 20220101-20211231 식이 되면 문제가 생기니까요.

그누 검색이나 인터넷 검색을 통해서 수능일 카운터 계산 등을 검색해서 남은 날짜를 빼시거나 깨끗하게 포기하시거나 하는 것을 권해 드립니다.

저는 여기까지입니다.

감사합니다.
며칠남음에 대한 해가 넘어가거나 달이 넘어갈경우를 생각 못했네요.
그래서 깨끗하게 포기하고 짜주신 코드를 적용 했습니다.
오늘 if 문 공부했는데...참 쉬운거 같으면서도 어렵네요. else 아래 또 if를 넣을 수도 있는 것도 처음 알았습니다. 이번 기회에 많이 배웠습니다. 정말로 감사 드려요. 제가 제 사이트에 꼼꼼히 노트해 두고 있습니다.

else if 를 쓰지 말고 마지막까지 모두 if 문으로 바꿔보세요.

 

문자열 파싱은 여러가지가 있지만 php 에서는 substr 로 자바스크립트에서는 slice 로 사용해 보았습니다.

이외에도 많은 방법이 있습니다.

 

<div> 에 넣는다는 가정 하에...

 

php


<?php
$day = "20211218";
echo "<div>".substr($day, 0, 4)."년 ".substr($day, 4, 2)."월 ".substr($day, 6, 2)."일</div>";
?>

 

자바스크립트


<script>
day = "20211218";
document.write("<div>" + day.slice(0, 4) + "년 " + day.slice(4, 6) + "월 " + day.slice(6, 8) + "일</div>");
</script>

 

믈론 php 에서는 $day = $list[$i]['wr_8']; 로

자바스크립트에서는 day = <?php echo $list[$i]['wr_8']; ?>; 로 바꿔서 사용하셔아겠죠.

안녕하세요.
아래와 같이 고쳤는데요.
행사 당일인 경우는 모든 경우 가 해당 되네요.

20211218 ~ 20211218

행사 진행 중 | 종료 0일전행사 진행 중 | 행사 당일행사 진행 전 | 신청가능▼



if ($today > $end_day) echo "<span style=color:#ff0000>행사 종료</span>";
if ($start_day <= $today && $today <= $end_day) echo "<span style=color:#ff0000>행사 진행 중</span> | <span style=color:#000000>종료 ".abs($rest_day)."일전</span>";
if ($start_day == $end_day) echo "행사 진행 중 | 행사 당일";
if ($tody < $start_day) echo "<span style=color:#0000FF>행사 진행 전</span> | 신청가능<span style=color:#ff0000>▼</span>";

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

회원로그인

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