[PHP] 현재일을 기준으로 잔여일 구하기 질문.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

[PHP] 현재일을 기준으로 잔여일 구하기 질문.. 정보

[PHP] 현재일을 기준으로 잔여일 구하기 질문..

본문

일전에도 한번 질문을 드렸었는데 해결이 되지 않아 이렇게 다시 한번 질문 드립니다.

현재 회원가입폼을 수정하여 서비스의 이용시작과 만료일을 체크하는 멤버리스트를 만들고
있습니다. mb_2 라는 여분필드2에 서비스 만료일이 '2009-12-25'와 같은 형식으로 입력이
되면 멤버리스트상 '잔여일' 테이블에서 'xx일' 이라고 명시가 되도록 할려고 하는데 어느정도
출력까지는 되게 하였는데, 본 게시물 제일 하단 첨부이미지와 같이 날짜가 허무맹랑하게 
표시가 됩니다. 어떤건 정상적으로 몇일 남았다고 나오는데 어떤것들은 수백일이 더해져서
나오는데, 무엇 때문일까요?? 

아래는 시간 계산을 위해 작성한 소스부분입니다//해당 소스도 스킨게시판에 스킨소스를 보고
적용을 해보았는데, 어떤 부분이 맞지 않아 날짜 표기가 저렇게 나오는지 모르겠습니다.
현재 마감일은 mb_2 이라는 여분필드에 입력이 되어 있습니다.


 //남은시간계산하기
 $year = substr("$row[mb_2]",0,4); // 년
 $month = substr("$row[mb_2]",-4,2); // 월
 $day = substr("$row[mb_2]",-2,2); // 일

 $date1=mktime(0,0,0,$month,$day,$year); //end타임의 timestamp값
 $date2=mktime();

 $total_secs=abs($date1 - $date2);
 $diff_in_days = floor($total_secs / 86400);
 $rest_hours = $total_secs % 86400;
 $diff_in_hours = floor($rest_hours / 3600);
 $rest_mins = $rest_hours % 3600;
 $diff_in_mins = floor($rest_mins / 60);
 $diff_in_secs = floor($rest_mins % 60);
 $time_diff = $diff_in_days ."일";
    //남은시간계산끝

그리고,,
잔여일을 표시할 테이블에는..
<td><font color=red><b>$time_diff</b></font></td>
이렇게 하였습니다.

그럼 아래와 같이 잘못된 날짜가 출력이 됩니다.



스샷 제일 하단은 정확하게 출력이 되었는데 그 위로 3개는 잘못된 날짜 계산인듯 합니다.
무엇때문일까요? 가르침을 주시면 감사하겠습니다. (__)

댓글 전체

$startdate = '2009-12-01';
$enddate = '2009-12-22';
echo date("z", strtotime($enddate)) - date("z", strtotime($startdate)); // 21 출력

시작일과 마감일 값을 해당 여분필드로 변경해서 사용하십시오.
만약 잔여일을 마감일 - 현재일로 기준하고 싶다면,
echo date("z", strtotime($enddate)) - date("z", strtotime("now")); // 21 출력
와 같이 사용하십시오.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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