date() , mktime() 사용법
페이지 정보
![profile_image](http://beautipia.co.kr/img/no_profile.gif)
본문
날짜나 시간 함수들은 매우 간단하면서도 꽤나 자주 쓰이죠.
그래서 상당히 중요하지만 쉽게쉽게 넘어가는 경우들이 많죠 :P
그래서 한번 제가 아는 함수들을 가지고 전체적인 정리를 해볼까 합니다.
우선 date()함수부터 시작하죠~
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일부터 몇일째 날인지
w:요일 숫자형 (일요일 0~ 토요일 6)
위에 것들을 굳이 외울 필요는 없구요. 찾아서 쓰면 되죠 :). 저는 자주 쓰는 몇개만 알구 있어요.
쓸때는요
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()함수를 이용해서 날짜를 원하는 형태로 만들어주게 됩니다.
출처 : http://blog.naver.com/apchima?Redirect=Log&logNo=80025270431
// 원하는 달의 마지막날 구하기
$end=mktime(0,0,0,$month + 1,1,$year) - 1; // 이달의 끝날추출
$endDay = date('d',$end);
// 한달 일별 구하기..
if(!$syear) $syear = date("Y");
if(!$smonth) $smonth = date("m");
$start = "{$syear}-{$smonth}-01";
$end=strtotime(date("Y-m-d",mktime(0,0,0,$smonth + 1,1,$syear) - 1)); // 이달의 끝날추출
for($i = strtotime($start) ; $i <= $end ; $i += 86400){
$today = date("Y-m-d",$i);
$week=date("D",$i); //요일구하기
echo "$i, $today";
}
그래서 상당히 중요하지만 쉽게쉽게 넘어가는 경우들이 많죠 :P
그래서 한번 제가 아는 함수들을 가지고 전체적인 정리를 해볼까 합니다.
우선 date()함수부터 시작하죠~
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일부터 몇일째 날인지
w:요일 숫자형 (일요일 0~ 토요일 6)
위에 것들을 굳이 외울 필요는 없구요. 찾아서 쓰면 되죠 :). 저는 자주 쓰는 몇개만 알구 있어요.
쓸때는요
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()함수를 이용해서 날짜를 원하는 형태로 만들어주게 됩니다.
출처 : http://blog.naver.com/apchima?Redirect=Log&logNo=80025270431
// 원하는 달의 마지막날 구하기
$end=mktime(0,0,0,$month + 1,1,$year) - 1; // 이달의 끝날추출
$endDay = date('d',$end);
// 한달 일별 구하기..
if(!$syear) $syear = date("Y");
if(!$smonth) $smonth = date("m");
$start = "{$syear}-{$smonth}-01";
$end=strtotime(date("Y-m-d",mktime(0,0,0,$smonth + 1,1,$syear) - 1)); // 이달의 끝날추출
for($i = strtotime($start) ; $i <= $end ; $i += 86400){
$today = date("Y-m-d",$i);
$week=date("D",$i); //요일구하기
echo "$i, $today";
}
- 이전글회원가입시 사용하는 랜덤 스트링 만들기 21.02.09
- 다음글날짜관련 계산하기 21.02.09
댓글목록
등록된 댓글이 없습니다.