원하는 기간에만 노출하는 소스 점검좀 부탁드립니다

원하는 기간에만 노출하는 소스 점검좀 부탁드립니다

QA

원하는 기간에만 노출하는 소스 점검좀 부탁드립니다

본문

이벤트 페이지를 구현중입니다.

만약 이벤트 기간이 2015년6월30일부터 2015년8월1일이라고 가정하고

이 기간에만 이벤트 내용이 노출되게 하려고 합니다.

제가 생각한 코드는


<?php 
$now = date("Ymd"); //현재 날짜 
$sevent1 = "20150712"; //이벤트시작날짜 
$fevent1 = "20150818"; //이벤트끝날짜 
$sevent1Y = $str = substr($sevent1, 0, 4); //시작날짜의 년도 뽑아오기
$sevent1M = $str = substr($sevent1, 4, 2); //월 뽑아오기
$sevent1D = $str = substr($sevent1, 6, 2); //일 뽑아오기 
$fevent1Y = $str = substr($fevent1, 0, 4); //끝날짜의 년도 뽑아오기
$fevent1M = $str = substr($fevent1, 4, 2); //월 뽑아오기
$fevent1D = $str = substr($fevent1, 6, 2); //일 뽑아오기 
?>

 

이렇게 구성하고

 


<?php if ( $sevent1 <= $now && $now <= $fevent1 ) { ?>
<div>기간 : <?=$sevent1Y?>년 <?=$sevent1M?>월 <?=$sevent1D?>일 ~ <?=$fevent1Y?>년 <?=$fevent1M?>월 <?=$fevent1D?>일 </div>
<div>이벤트 해당내용</div>
<?php } ?> 

 

이런 식으로 처리했는데요..

 

구현해보니 원하는 대로 나오기는 합니다만

php를 눈으로 배운 실력이라 그런지 왠지 미심쩍고 어수선해보입니다..

 

고수님들의 정리되고 명확한 소스는 어떻게 구현되는지 궁금합니다~

php문맹의 눈을 밝게해주세요~

이 질문에 댓글 쓰기 :

답변 2

명확한 소스라기 보다, 좀 짧게 줄이자면...

한번 테스트는 해보시고, 소스의 핵심은

 

- 시간을 모두 UNIX_TIMESTAMP로 처리하고, 표현만 date 함수를 사용하는 것

 

- UNIX_TIMESTAMP를 구하기 위해서 time 함수와 strtotime 함수를 사용한 것

 

각 함수는 검색해보시면 더 자세한 용법이 있을거에요.

로직에 문제는 없어보입니다.

 


<?php
$now = time();
$sevent1 = strtotime("2015-07-12");
$fevent1 = strtotime("2015-08-18");
?>
 
<?php if( $sevent1 <= $now && $now <= $fevent1 ) { ?>
<div>기간 : <?=date("Y년 m월 d일", $sevent1)?> ~ <?=date("Y년 m월 d일", $fevent1)?> </div>
<div>이벤트 해당내용</div>
<?php } ?>  

<?php  
$now = date("Y/m/d"); //현재 날짜  
$sevent1 = "2015/07/12"; //이벤트시작날짜  
$fevent1 = "2015/08/18"; //이벤트끝날짜  
$sevent_arr = explode("/", $sevent1);
$fevent_arr = explode("/", $fevent1);
?> ​

윗부분을 이렇게 구분자를 주어서 배열로 만들어주면 윗부분 소스는 조금 더 간단해질거같습니다..

직관적으로 하시기에는 별명님이 하신것도 알기 괜찮은거같다는 생각...ㅎㅎ

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

회원로그인

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