string date ( string $format [, int $timestamp ] )
(PHP 4, PHP 5)

포맷(format) 문자열에 다음 표의 값으로 대입할 경우 형식화된 현제의 로컬 시간을 반환받거나, 선택적인 timestamp에 대입하여 원하는 날짜나 시간을 얻을 수 있습니다. timestamp 인자가 주어지지 않을 경우 기본 값 time() 을 반환 합니다.

다음 표의 문자들을 format 인수 문자열로 인식합니다.

일 (Day) 설 명 예 시
d 일, 앞에 0이 붙는 2 숫자 01 ~ 31(일)
D 요일 글자 표현, 3 문자 Mon ~ Sun
j 앞에 0이 붙지 않는 일 1 ~ 31(일)
l 요일의 완전한 글자 표현 Sunday ~ Saturday
N 요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) 1(월요일) ~ 7(일요일)
S 일 영어 접미사, 2 문자 st, nd, rd, th. J 형식
w 요일 숫자 표현 0(일요일) ~ 6(토요일)
z 해당 연도 일차 (0에서 시작) 0 ~ 365

주 (week) 설 명 예 시
W ISO-8601 주차, 주는 월요일에 시작 42; 그 해의 42번째 주

월 (Month) 설 명 예 시
F January나 March 같은 월의 완전한 글자 표현 January ~ December
m 0이 붙는 월 숫자 표현 01 ~ 12
M 월의 축약 글자 표현, 3 문자 Jan ~ Dec
n 0이 붙지 않는 월 숫자 표현 1 ~ 12
t 주어진 월의 일 수 28 ~ 31

연 (Year) 설 명 예 시
L 윤년 여부 윤년이면 1, 아니면 0
o ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다.
(PHP 5.1.0에서 추가)
1999나 2003
Y 연도의 완전한 숫자 표현, 4 숫자 1999나 2003
y 연도의 두 숫자 표현 99나 03

시간 (Time) 설 명 예 시
a 오전과 오후의 소문자 am 또는 pm
A 오전과 오후의 대문자 AM 또는 PM
B 스와치 인터넷 시간 000 ~ 999
g 0이 붙지 않는 12시간 형식 시 1 ~ 12
G 0이 붙지 않는 24시간 형식 시 0 ~ 23
h 0이 붙는 12시간 형식 시 01 ~ 12
H 0이 붙는 24시간 형식 시 00 ~ 23
i 0이 붙는 분 00 ~ 59
s 초, 0이 붙음 00 ~ 59
u 마이크로초 (PHP 5.2.2에서 추가) 54321

시간대 (Timezone) 설 명 예 시
e 시간대 식별자
(PHP 5.1.0에서 추가)
UTC, GMT, Atlantic/Azores
I 일광 절약 시간 여부 일광 절약 시간이면 1, 아니면 0
O 그리니치 시간(GMT)과 시차 +0200
P 시와 분 사이에 콜론이 들어가는 시간(GMT)과 차이 +02:00
T 시간대 축약어 EST, MDT
Z 시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 -43200 ~ 50400

날짜/시간 표현 (Full date/Time) 설 명 예 시
c ISO 8601 날짜
(PHP 5에서 추가)
2004-02-12T15:19:21+00:00
r » RFC 2822 형식 날짜 Thu, 21 Dec 2000 16:01:07 +0200
U January 1 1970 00:00:00 GMT 부터 초수 timestamp 형식

포맷문자열로 어떤 결과가 나오는지 아래 예제로 확인해 보겠습니다. 먼저 일(Day) 포맷형식입니다.

<?php
 // 오늘은 2011년 5월 6일 금요일(Friday) 입니다.

 // 일, 앞에 0이 붙는 2 숫자
 echo date('d'); // 결과: 06

 echo "<br />";
 // 요일 글자 표현, 3 문자 출력
 // Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
 echo date('D'); // 결과: Fri

 echo "<br />";
 // 앞에 0이 붙지 않는 일
 echo date('j'); // 결과: 6

 echo "<br />";
 // 영문인 요일의 완전한 글자 표현
 // Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
 echo date('l'); // 결과: Friday

 echo "<br />";
 // 요일의 ISO-8601 숫자 표현 
 // 1->월, 2->화, 3->수, 4->목, 5->금, 6->토, 7->일
 echo date('N'); // 결과: 5

 echo "<br />";
 // 요일 숫자 표현
 echo date('w'); // 결과: 5

 echo "<br />";
 // 365일 중 오늘은 125일째입니다.
 echo date('z'); // 결과: 125
 ?>

이번에는 주(Week) 포맷형식입니다.

<?php
 // 오늘은 2011년 5월 6일 금요일(Friday) 입니다.

 // 1월 부터 오늘까지 18주가 흘렀습니다.
 echo date('W'); // 결과: 18
 ?>

이제 월(Month) 포맷형식을 보겠습니다.

<?php
 // 1월->January, 2월->February, 3월->March, 4월->April, 5월->May, 6월->June
 // 7월->July, 8월->August, 9월->September, 10월->October, 11월->November, 12월->December
 // 오늘은 2011년 5월 6일 금요일(Friday) 입니다.

 // 월의 완전한 글자 표현
 echo date('F'); // 결과: May

 echo "<br />";
 // 0이 붙는 월 숫자 표현
 echo date('m'); // 결과: 05

 echo "<br />";
 // 월의 영문 첫 3문자
 echo date('M'); // 결과: May

 echo "<br />";
 // 0이 붙지 않는 월 숫자 표현
 echo date('n'); // 결과: 5

 echo "<br />";
 // 이 달 마지막 일 수, 5월은 31일까지임
 echo date('t'); // 결과: 31
 ?>

년(Year) 포맷형식은 아래 예제와 같습니다.

<?php
 // 오늘은 2011년 5월 6일 금요일(Friday) 입니다.

 // 윤년이면 1를, 아니면 0인 값
 echo date('L'); // 결과: 0

 echo "<br />";
 // 연도의 완전한 숫자 표현, 4 숫자
 echo date('Y'); // 결과: 2011

 echo "<br />";
 // 연도의 끝 두 숫자 표현
 // o 문자 포맷과 같음
 echo date('y'); // 결과: 11
 ?>

시간(Time) 포맷형식입니다.

<?php
 // 오늘은 2011년 5월 6일 금요일(Friday) PM 11시 입니다.

 echo date('a'); // 결과: pm

 echo "<br />";
 echo date('A'); // 결과: PM

 echo "<br />";
 // 시차없이 24시간을 1000개(비트)로 나눈 시간; 스위스기준: 자정은 '@0', 정오는 '@500' 비트시로 표시
 echo date('B'); // 결과: 660

 echo "<br />";
 // 0이 붙지 않는 12시간 형식 시
 echo date('g'); // 결과: 11

 echo "<br />";
 // 0이 붙지 않는 24시간 형식 시
 echo date('G'); // 결과: 23

 echo "<br />";
 // 0이 붙는 12시간 형식 시
 echo date('h'); // 결과: 11

 echo "<br />";
 // 0이 붙는 24시간 형식 시
 echo date('H'); // 결과: 23

 echo "<br />";
 // 0이 붙는 분, 현제 시각 23시 50분 입니다.
 echo date('i'); // 결과: 50

 echo "<br />"; 
 // 초, 0이 붙음, 현제 시각 23시 50분 1초 입니다.
 echo date('s'); // 결과: 01

 echo "<br />";
 // 마이크로 초입니다.
 echo date('u'); // 결과: 000000 
 ?>

시간대(Timezone) 포맷형식입니다.

<?php
 echo date('e'); // 결과: Asia/Tokyo
 ?>

아래는 날짜/시간(Full date/Time) 포맷형식 예제입니다.

<?php
 // 형식: 요일. 일 월 년 시:분:초+GMT
 echo date('r'); // 결과: Sat, 14 May 2011 00:04:52 +0900

 // 형식: 년-월-일 시:분:초+GMT
 echo date('c'); // 결과: 2011-05-14T00:08:40+09:00

 // 1970년 1월 1일로부터 2011년 5월 14일까지 1305299536초가 경과된 시간
 echo date('U'); // 결과: 1305299536
 ?>

포맷 문자열에 일반 문자를 넣거나 포맷 문자열을 역슬레쉬(\)로 일반 문자로 인식되게 할 수도 있습니다. 다음 예제가 이해에 도움이 되리라 봅니다.

<?php
 echo date("Y-m-d"); // 결과: 2011-05-14

 echo "<br />";
 echo date('H:i:m'); // 결과: 00:22:05

 echo "<br />";
 echo date('현제 시각은 H시 i분 m초',time()); // 결과: 현제 시각은 00시 22 분 05초

 echo "<br />";
 echo date('오늘은 y년 m월 d일 입니다. \Y-\m'); // 결과: 오늘은 11년 05월 14일 입니다. \Y-\m
 ?>

0 댓글