PHP 날짜 계산

PHP 2014. 8. 18. 17:56




mktime(시,분,초,월,일,년) 유닉스 타임(타임스탬프:1970년을기준으로부터 1초단위숫자)으로 값을 출력합니다. 
타임스탬프를 날짜형식으로 볼수 있는 함수가 date 입니다. 

date는 날짜가 들어가지 않으면 기본적으로 오늘을 뜻합니다. 
date("Y-m-d") ==> 오늘 날짜 
mktime 으로 얻은 값을 date 함수로 특정 형식으로 출력 
date("Y-m-d", mktime(0, 0, 0, 12, 32, 1997)); ==> 1998-01-01 


출력의 할때 편리한 점은 1월32일은 2월1 일로 나온다는 것입니다. 
그럼 2005년 1월부터 100일 지난 날은 몇일일까요? 
응용 date("Y-m-d", mktime(0, 0, 0, 0 , 1, 101, 2005)); ==> 2005년 04월 11일 
(1월1일은 포함하면 안되겠죠? 그래서 하루 더 증가~) 
출력의 기본입니다. 

계산. 
기본연산은 strtotime("각종연산") 으로 합니다. 
타임스탬프를 리턴합니다. 
이말은 date 형으로 출력할 수 있다는 말입니다. ^^ 

strtotime 은 날짜가 들어가지 않으면 기본적으로 오늘을 뜻합니다. 
그리고 이 함수 또한 일수가 넘어가면 다음달로 계산됩니다. 
strtotime("+3 day") => 오늘에서 3일 후, 물론 달이 넘어가면 1일로 계산됨 
이 함수를 개인적으로 좋아하는 이유가 mktime 을 사용할 필요가 없다는 점입니다. 
(필요가 있을 경우를 찾아주세요. ㅡ_-+) 

date("Y년 m월 d일 h:m:s",mktime(12,12,1,1,2,2005)) 
date("Y년 m월 d일 h:m:s",strtotime("2005-01-02 12:12:01")) 

이 두 함수는 같은 2005년 01월 02일 12:01:01 을 나타냅니다. 
물론 사용하기도 strtotime 이 훨씬 쉽습니다. 

그럼 2005년 1월부터 100일 지난 날은 몇일인지 strtotime 을 이용해서 확인해봅시다. 
응용 date("Y-m-d", strtotime("2005-01-01 +100 day")); ==> 2005년 04월 11일 
위에서 
+100 day 는 +2 month 나 +10 year 와 같이 특정 연산이 가능합니다. 


두날짜의 연산은 타임스탬프로 두날짜의 차이값을 얻어서 86400 (60초*60분*24시) 로 나누면 몇일인지 나옵니다. 
intval((strtotime("2005-01-10")-strtotime("2005-01-02"))/86400)    =>    8 


'PHP' 카테고리의 다른 글

PHP AJAX POST JQUERY 통신 관련  (0) 2016.06.30
php 날짜 제한 걸때.  (0) 2014.09.18
php 자기자신 파일명 위치 알아오기  (0) 2014.09.16
session 섹션 php섹션 섹션 pnp session 뭐 등등  (0) 2014.08.05
kookie 쿠키관련 정리  (0) 2014.08.05
블로그 이미지

은호아빠

여행, 맛집, 일상, 프로그래밍, 개발자, 윈도우, 웹, jsp, spring, db, mysql, oracle, c#

,