본문 바로가기

php

날짜 차 구하기


두개의 날짜 차이 구하기 ( explode / mktime )

NINA 2009-03-31 10:17:44 주소복사
조회 647  스크랩 0

[질문]

php 에서 날짜를 뺄려고 하는데 어떻게 빼나요?
DB 에서 날짜 2 개를 갖고  와서 두개의 날짜 차를 구하고 싶습니다.
만일 2004-08-16 에서 2004-08-20 까지 의 차는 4일처럼요...
PHP에서 어떻게 하는지 좀 알려주세요..

 

[답변]

<?
 $startDay = "2004-08-16";
 $endDay = "2004-08-20";

 $day1 = explode("-", $startDay);
 $day2 = explode("-", $endDay);

 $startTS = mktime(0,0,0,$day1[1], $day1[2], $day1[0]);
 $endTS = mktime(0,0,0,$day2[1], $day2[2], $day2[0]);

 $resultTime = ($endTS - $startTS) / (60*60*24);

 echo $startDay."에서 ".$endDay."까지의 차는 ".$resultTime."입니다.";
?>

 

Q. 앗 그렇군여..감사 드려요.. 근데 mktime 앞에 0,0,0은 뭔가요?

A. 시간 분 초 이런것입니다.

 

출처:Php스쿨(http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=107064)


 

explode() : 지정된 문자기준으로 배열만들기.

사용형식: explode("기준문자","나눌변수명") 

예)<?

$aisitest="010-1234-5678";
$aisitest2=explode("-",$aisitest);

echo $aisitest2[0];

echo $aisitest2[1];

echo $aisitest2[2];

?>

결과)01012345678

 

출처:네이버카페/홈페이지,웹디자인,웹마스터카페(http://cafe.naver.com/free6721.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=264)


 

mktime : 지정된 날짜를 date()함수 등이 사용하는 timestamp로 만든다.

 

mktime(0,0,0,12,25,2000) mktime이란 함수는 date()함수 등으로 날짜를 저장하면 이상한 숫자로 저장되는 숫자값이 보이는데 이러한 값을 timestamp라고 합니다.

이숫자는 1970년 1월1일로부터 계산하여 현재까지 총 지나간 초를 의미합니다. mktime은 이러한 초를 계산하는 함수입니다. 시,분,초,월,일,년도 을 mktime 시키면 timestamp형식으로 변환해줍니다.

 

mktime으로 구해진 시간을 현재 date로 바꾸는 함수는?

그런 경우는 timestamp는 916928123 같이 되어 있습니다. 이런 경우 날짜로 다시 보여주고 싶을 경우에는 다음과 같이 합니다.
$res=916928123;
$str=date(Y년 m월 d일 H시 i분 s초,$res);
자기맘대로 해보세요 대문자 소문자 사용해서...이렇게 하면 시간은 1999년 01월 21일 23시 15분 23초 로 표시됩니다.

 

출처: 네이버카페/IT정보보안해커전문카페(http://cafe.naver.com/prohackers.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=471)오렌지블루강좌중 일부

'php' 카테고리의 다른 글

fsockopen urlencode  (0) 2012.02.21
PHP로 RSS를 간단히 만들기  (0) 2011.03.07
엑셀파일로 출력하기 html 헤더에 쓴다  (0) 2010.06.24
date  (0) 2010.05.03
header로 들어오는 url 고치기  (0) 2010.03.29