몇일 남음? 종료일까지 **일 계산하기 mysql / script > 그누보드5 팁자료실

그누보드5 팁자료실

몇일 남음? 종료일까지 **일 계산하기 mysql / script 정보

몇일 남음? 종료일까지 **일 계산하기 mysql / script

본문

안녕하세요.

제목을 어떻게 해야 하는지 몰라 제가 아는 용어로 적었습니다. 그래서 설명이 좀 필요할 것 같습니다.

 

[상황]

이벤트 게시판 처럼 행사 시작일 / 행사 종료일을 입력 합니다.

wr_8: 행사 시작일 입력함. 입력값 형태(20211219)

wr_9: 행사 종료일 입력함. 입력값 형태는 위와 동일

 

아래와 같이 나타내고 싶었습니다.

"행사 종료 **일 전"

833227679_1639901897.3944.jpg

적용한 사이트: 

https://klick.co.kr/bbs/board.php?bo_table=wedding

 

PHP로 시도 했다가 잘 안되었어 먼저 mysql방식으로 해결 했습니다.(추후 균이님의 조언으로 소스코드가 간결하게 되었습니다)

추가적으로 비타주리님이 스크립트로 소스를 간결하게 짜 주셔서 아래에 추가 했습니다.

 

도움을 많이 받아 감사의 마음으로 실력도 안되지만 공유하는 마음으로 올립니다.

혹시 잘못된 부분이나 좀더 개선할 수 있는 부분이 있으면 의견 주시면 감사하겠습니다.

 

 

[적용한 것]

1. list.skin.php 상단에 아래 코드를 넣어 줬습니다.


//mysql 이용해서 날짜차이 구하기 by 균이님
function my_date_diff($start_date, $end_date) {
 $row = sql_fetch("select datediff('$end_date', '$start_date') as dd ");
return $row['dd'];
}

 

2. list.skin.php 필요한 부분에 아래 코드를 넣어 줬습니다.

{$rest_day} 이 일을 표시하는 부분 입니다.

 


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

 

 

 

추가...

스크립트로 처리 하기 by 비타주리님

적용할 곳에만 아래와 같이 넣어 주면 됩니다.


<?php
$today = date("Ymd"); //오늘
$start_day = $list[$i]['wr_8']; // 시작일
$end_day = $list[$i]['wr_9']; // 종료일
if ($today < $start_day) echo "<span style=color:#0000FF>행사 진행 전</span> | 신청가능<span style=color:#ff0000>▼</span>";
    else {
        if ($today < $end_day) {
            echo "
                <script>
                currentDay = '$today';
                endDay = '$end_day';
                currentDay = Number(currentDay.slice(0, 4)) + ',' + Number(currentDay.slice(4, 6)) + ',' + Number(currentDay.slice(-2));
                endDay =  Number(endDay.slice(0, 4)) + ',' + Number(endDay.slice(4, 6)) + ',' + Number(endDay.slice(-2)); 
                restDay = (new Date(endDay).getTime() - new Date(currentDay).getTime()) / 1000 / 60 / 60 / 24;
                document.write('<span style=color:#ff0000>행사 진행 중</span> | 행사 종료 <strong>' + restDay + '</strong>일 전');
                </script>
            ";
        }
        else if ($today == $end_day) echo "<span style=color:#ff0000>행사 진행 중</span> | 행사 마지막날";
        else echo "<span style=color:#ff0000>행사 종료</span>";
    }
?>

 

 

 

 

[마무리]

비 프로래머 초보 입장에서 글을 작성했습니다. 잘못된 정보는 바로 지적해주세요.

그리고 받은 만큼 공유 하고 싶은 마음에서 공개를 했으니 귀엽게 봐주세요.

그리고 끝까지 도움을 주신 비타주님께 감사 드립니다.

 

좋은 하루 되세요

추천
9

댓글 4개

아래 소스로만 가능할 듯요
남은 날짜는 php로 계산해도 되는데 저는 js가 더 편해서 그리 만들었습니다.


<?php
$today = date("Ymd"); //오늘
$start_day = $list[$i]['wr_8']; // 시작일
$end_day = $list[$i]['wr_9']; // 종료일
if ($today < $start_day) echo "<span style=color:#0000FF>행사 진행 전</span> | 신청가능<span style=color:#ff0000>▼</span>";
    else {
        if ($today < $end_day) {
			echo "
				<script>
				currentDay = '$today';
				endDay = '$end_day';
				currentDay = Number(currentDay.slice(0, 4)) + ',' + Number(currentDay.slice(4, 6)) + ',' + Number(currentDay.slice(-2));
				endDay =  Number(endDay.slice(0, 4)) + ',' + Number(endDay.slice(4, 6)) + ',' + Number(endDay.slice(-2)); 
				restDay = (new Date(endDay).getTime() - new Date(currentDay).getTime()) / 1000 / 60 / 60 / 24;
				document.write('<span style=color:#ff0000>행사 진행 중</span> | 행사 종료 <strong>' + restDay + '</strong>일 전');
				</script>
			";
		}
        else if ($today == $end_day) echo "<span style=color:#ff0000>행사 진행 중</span> | 행사 마지막날";
        else echo "<span style=color:#ff0000>행사 종료</span>";
    }
?>

스크립트로 짜주셨네요. 감사합니다.

디비로 표현하는 것은 균이님께서 조언 주셔서 다시 게시물 내용 정리 할께요.
전체 2,428 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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