본문 바로가기
Development/PHP

PHP 날짜 함수

by Dev. Jkun 2011. 9. 22.
반응형

php로 DB 관련 작업 하다보면 날짜나 시간을 다루어야 하는 일이 많이 발생한다.

그런경우를 위한 간단한 팁이다.

 

현재 날짜

 

$today = date("Y-m-d", mktime(0,0,0,date("m")  , date("d"), date("Y")));

 

echo $today;

 

결과 2005-01-10

 

 

혹은 간단하게

$today = date("Y-m-d", time(0));  이라고 해도 같은 결과가 나온다.

 

어제 날짜

$yesterday = date("Y-m-d", mktime(0,0,0,date("m")  , date("d")-1, date("Y")));

 

 

내일 날짜

$tomorrow = date("Y-m-d", mktime(0,0,0,date("m")  , date("d")+1, date("Y")));

이 것을 이용하면 1년 전, 일주일 전, 2시간 전 등 날짜를 마음대로 조정할 수 있다.

 

 

출처 : http://cafe.naver.com/iamandy.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=644

 

 

date() 함수는 어떠한 시간(현재시간이나 예전 시간이나)을 사용자가 원하는 거의 모든 형태로 바꿔줄 수 있습니다.

우선 date()함수가 지원하는 모든 형태들을 알아봐야겠네요.

a : am, pm 

 

A : AM,PM 

 

d : 2자리 정수의 날짜 형태 

 

D : 요일의 앞 3글자 (Fri, Thu, Tue ... ) 

 

F : 해당 달의 이름 형태 (March, December, ... ) 

 

h : 2자리 정수의 시간 (12시간 이내) 

 

H : 2자리 정수의 시간(24시간) 

 

i : 2자리 정수의 분 

 

l : 해당 날의 요일 (Friday, Thursday ... ) 

 

m : 해당 달의 2자리 정수 형태 

 

M : 해당하는 달의 이름 앞 3글자 (Jan, Dec, ... ) 

 

s : 정수형의 초 

 

T : 해당하는 달에 날이 몇일까지 있는지 (28,29,30,31) 

 

Y : 해당 년의 4자리 정수 형태 (2001) 

 

y : 해당 년의 2자리 정수 형태 (01) 

 

z : 해당 년 1월 1일부터 몇일째 날인지

 

echo date("Y/m/d H:i:s");

결과 : 2002/10/4 13:56:12 이런식으로 나오게 된딥나다~

 

 

예전 날짜나 미래 날짜를 지정해서 쓰는 법을 알아봅시다.

 

mktime() 함수를 이용하면 간단하답니다.

 

$str = mktime(시간, 분 , 초 , 달 , 날 ,연도);

 

이렇게 하시면 $str에 지정하신 시간의 자료가 저장됩니다.

 

그 자료를 date()함수로 자기가 원하는 형태로 나타낼 수 있답니다. :)

 

이런 식으로 시간 함수를 사용하면 정말 많은 것들을 할 수 있씁니다.

 

어떤 예전 날짜나 미래의 날짜가 무슨 요일인지도 쉽게 알아볼 수 있죠.

 

그럼 예제로 한번 밀레니엄 버그가 생긴다는 2000년 1월 1일이 무슨 요일이었는지 한번 알아보죠~

 

echo date("l", mktime(0,0,0,1,1,200));

 

해주면 200년 1월 1일이 무슨 요일인지 출력합니다.

 

참고로 방금 해본 결과 토요일이엇네요 :)

 

 

 

 

 

제 게시판에 보이는 날짜는 mysql에서 now()로 지정한 날짜를 받아와서

 

Oct 04, 2002 (Fri) 이런 형태로 만듭니다.

 

그걸 어떻게 하나 알아봅시다.

 

now()로 시간을 mysql상에서 저장하게 되면 2002-10-4 19:23:40

 

이런식으로 저장이 됩니다.

 

그러면 이렇게

 

$date = substr($data, 0, 10); 

 

$str = explode("-", $date); 

 

$date = date("M d, Y (D)", mktime(0, 0, 0, $str[1], $str[2], $str[0]));

 

이런식으로 앞의 10글자만 따오고 ( 2002-10-04 <- 10글자 맞죠? )

 

"-" 이 다시 기호로 분리시켜서 :)

 

date()함수와 mktime()함수를 이용해서 날짜를 원하는 형태로 만들어주게 됩니다.

반응형

'Development > PHP' 카테고리의 다른 글

쿼리 페이징을 최대한 빠르게  (0) 2011.09.22
PHP 기본적인 페이징(Paging)  (0) 2011.09.22
PHP 문자열 함수  (0) 2011.09.22
PHP / MySQL fetch_array  (0) 2011.09.19
UTF-8 형식으로 저장할때 생기는 공백 문제  (0) 2011.09.15

댓글