(PHP 4, PHP 5)
date — 로컬 날짜/시간을 형식화합니다
정수형으로 주어지는 timestamp 나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp 는 선택적이고, 기본값은 time()의 값입니다.
출력하는 날짜 string의 형식. 아래 형식화 옵션을 참고하십시오.
format 문자 | 설명 | 반환값 예시 |
---|---|---|
일 | --- | --- |
d | 일, 앞에 0이 붙는 2 숫자 | 01에서 31 |
D | 요일 글자 표현, 3 문자 | Mon에서 Sun |
j | 앞에 0이 붙지 않는 일 | 1에서 31 |
l (소문자 '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 |
주 | --- | --- |
W | ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) | 예시: 42 (그 해의 42번째 주) |
월 | --- | --- |
F | January나 March 같은 월의 완전한 글자 표현 | January에서 December |
m | 0이 붙는 월 숫자 표현 | 01에서 12 |
M | 월의 축약 글자 표현, 3 문자 | Jan에서 Dec |
n | 0이 붙지 않는 월 숫자 표현 | 1에서 12 |
t | 주어진 월의 일 수 | 28에서 31 |
연 | --- | --- |
L | 윤년 여부 | 윤년엔 1, 그 외엔 0 |
o | ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) | 예시: 1999나 2003 |
Y | 연도의 완전한 숫자 표현, 4 숫자 | 예시: 1999나 2003 |
y | 연도의 두 숫자 표현 | 예시: 99나 03 |
시간 | --- | --- |
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 |
시간대 | --- | --- |
e | 시간대 식별자 (PHP 5.1.0에서 추가) | 예시: UTC, GMT, Atlantic/Azores |
I (대문자 i) | 일광 절약 시간 여부 | 일광 절약 시간이면 1, 아니면 0 |
O | 그리니치 시간(GMT)과 시차 | 예시: +0200 |
P | 시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 | 예시: +02:00 |
T | 시간대 축약어 | 예시: EST, MDT ... |
Z | 시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 | -43200에서 50400 |
날짜/시간 표현 | --- | --- |
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)부터 초수 | time() 참조 |
format 문자열로 인식되지 않는 문자는 그대로 출력합니다. Z 형식은 gmdate()를 이용할 때는 항상 0을 반환합니다.
Note: 이 함수는 integer 타임스탬프만 받아들이므로, u 형식 문자는 date_create()로 만들어진 사용자 기반 타임스탬프를 date_format() 함수에 이용할 때만 유용합니다.
선택적인 timestamp 인수는 timestamp 가 주어지지 않았을 경우, 현재 로컬 시간을 기본값으로 가지는 integer 유닉스 타임스탬프입니다. 즉, 기본값은 time() 값입니다.
형식화된 날짜 문자열을 반환합니다. timestamp 에 숫자가 아닌 값을 사용하면, FALSE를 반환하고 E_WARNING 등급 오류가 발생합니다.
모든 날짜/시간 함수 호출은 시간대가 유효하지 않을 때 E_NOTICE를, 시스템 설정이나 TZ 환경 변수를 사용할 때 E_STRICT를 생성합니다. date_default_timezone_set()을 참고하십시오.
버전 | 설명 |
---|---|
5.1.0 | 유효한 타임스탬프 범위는 보통 Fri, 13 Dec 1901 20:45:54 GMT 에서 Tue, 19 Jan 2038 03:14:07 GMT 입니다. (이 날짜들은 32비트 부호 있는 정수의 최소값과 최대값에 해당합니다) 그러나, PHP 5.1.0 이전에는 몇몇 시스템에서 이 범위가 01-01-1970에서 19-01-2038로 제한되었습니다. (윈도우 등) |
5.1.0 | 시간대 오류시 E_STRICT와 E_NOTICE가 발생합니다. |
5.1.1 | format 인수 지정에 사용할 수 있는 유용한 표준 날짜/시간 상수가 있습니다. |
Example #1 date() 예제코드
<?php
// 기본 시간대를 설정. PHP 5.1 부터 가능.
date_default_timezone_set('UTC');
// 출력 예시: Monday
echo date("l");
// 출력 예시: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// 출력: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* 형식 인수로 상수 사용하기 */
// 출력 예시: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);
// 출력 예시: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
format 문자열로 인식하는 문자 바로 앞에 백슬래시를 붙여서 이스케이프를 함으로써, 인식하는 것 막을 수 있습니다. 백슬래시가 붙는 문자가 이미 특별한 의미를 가지고 있다면, 백슬래시를 이스케이프해야 합니다.
Example #2 date()의 회피 문자
<?php
// 다음의 출력: Wednesday the 15th
echo date("l \\t\h\e jS");
?>
date()와 mktime()을 함께 사용함으로써 미래나 과거의 시간을 얻을 수 있습니다.
Example #3 date()와 mktime() 예제
<?php
$tomorrow = mktime (0,0,0,date("m") , date("d")+1, date("Y"));
$lastmonth = mktime (0,0,0,date("m")-1, date("d"), date("Y"));
$nextyear = mktime (0,0,0,date("m"), date("d"), date("Y")+1);
?>
Note: 이는 일광 절약 시간을 고려하기 때문에, 단순히 timestamp에 하루나 한달에 해당하는 초를 더하는 것보다 신뢰할 수 있습니다.
date() 형식화의 몇몇 예제. 모든 다른 문자들도 이스케이프 해야함에 주의하십시오. 현재 특별한 의미를 가진 어떤 것이 바람직하지 못한 결과를 가져올 수 있고, 앞으로의 PHP 버전에서는 다른 문자들도 지정될 수가 있습니다. 이스케이프 할 때는, \n이 줄바꿈으로 인식 되는 것과 같은 예을 피하기 위해서는 작은 따옴표를 사용해야만 합니다.
Example #4 date() 형식화
<?php
// Assuming today is: March 10th, 2001, 5:16:18 pm
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:16:18 m is month
$today = date("H:i:s"); // 17:16:18
?>
다른 언어로 날짜를 형식화 하기 위해서는, date() 대신에 setlocale()과 strftime() 함수를 사용해야 합니다.
Note: 날짜의 문자 표현에서 타임스탬프를 만드려면, strtotime()을 사용할 수 있습니다. 추가적으로, 몇몇 데이터베이스는 날짜 형식에서 타임스탬프로 바꾸는 함수를 가지고 있습니다. (MySQL의 » UNIX_TIMESTAMP 등)
PHP 5.1부터 요청의 시작 타임스탬프가 $_SERVER['REQUEST_TIME']에 존재합니다.