이벤트 페이지를 구현중입니다.
만약 이벤트 기간이 2015년6월30일부터 2015년8월1일이라고 가정하고
이 기간에만 이벤트 내용이 노출되게 하려고 합니다.
제가 생각한 코드는
Copy
<?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); //일 뽑아오기 ?>
이렇게 구성하고
Copy
<?php if ( $sevent1 <= $now && $now <= $fevent1 ) { ?><div>기간 : <?=$sevent1Y?>년 <?=$sevent1M?>월 <?=$sevent1D?>일 ~ <?=$fevent1Y?>년 <?=$fevent1M?>월 <?=$fevent1D?>일 </div><div>이벤트 해당내용</div><?php } ?>
이런 식으로 처리했는데요..
구현해보니 원하는 대로 나오기는 합니다만
php를 눈으로 배운 실력이라 그런지 왠지 미심쩍고 어수선해보입니다..
고수님들의 정리되고 명확한 소스는 어떻게 구현되는지 궁금합니다~
php문맹의 눈을 밝게해주세요~
답변 2개 / 댓글 2개
채택된 답변
+20 포인트
10년 전
명확한 소스라기 보다, 좀 짧게 줄이자면...
한번 테스트는 해보시고, 소스의 핵심은
- 시간을 모두 UNIX_TIMESTAMP로 처리하고, 표현만 date 함수를 사용하는 것
- UNIX_TIMESTAMP를 구하기 위해서 time 함수와 strtotime 함수를 사용한 것
각 함수는 검색해보시면 더 자세한 용법이 있을거에요.
로직에 문제는 없어보입니다.
Copy
<?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 } ?>
답변에 대한 댓글 1개
10년 전
Copy
<?php $now = date("Y/m/d"); //현재 날짜 $sevent1 = "2015/07/12"; //이벤트시작날짜 $fevent1 = "2015/08/18"; //이벤트끝날짜 $sevent_arr = explode("/", $sevent1);$fevent_arr = explode("/", $fevent1);?>
윗부분을 이렇게 구분자를 주어서 배열로 만들어주면 윗부분 소스는 조금 더 간단해질거같습니다..
직관적으로 하시기에는 별명님이 하신것도 알기 괜찮은거같다는 생각...ㅎㅎ
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.