원하는 기간에만 노출하는 소스 점검좀 부탁드립니다
본문
이벤트 페이지를 구현중입니다.
만약 이벤트 기간이 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);
?>
윗부분을 이렇게 구분자를 주어서 배열로 만들어주면 윗부분 소스는 조금 더 간단해질거같습니다..
직관적으로 하시기에는 별명님이 하신것도 알기 괜찮은거같다는 생각...ㅎㅎ
!-->
답변을 작성하시기 전에 로그인 해주세요.