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 식이 되면 문제가 생기니까요.
그누 검색이나 인터넷 검색을 통해서 수능일 카운터 계산 등을 검색해서 남은 날짜를 빼시거나 깨끗하게 포기하시거나 하는 것을 권해 드립니다.
저는 여기까지입니다.
!-->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']; ?>; 로 바꿔서 사용하셔아겠죠.
!-->!-->