date

(PHP 3, PHP 4 , PHP 5)

date -- 로컬 날짜/시간을 형식화합니다.

설명

string date ( string format [, int timestamp])

정수형으로 주어지는 timestamp나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp는 선택적이고, 기본값은 time()의 값입니다.

참고: 전형적인 timestamp의 유효 범위는 1901년 12월 13일 금요일 20:45:54 GMT부터 2038년 1월 19일 화요일 03:14:07 GMT입니다. (이것은 부호 있는 32비트 정수형의 최소와 최대값에 대응합니다. 윈도우즈에서는 이 값은 1970-01-01부터 2038-01-19로 제한됩니다)

참고: 날짜를 표시하는 문자열로부터 timestamp를 생성하기 위해서, strtotime()을 사용할 수 있습니다. 또한, 몇몇 데이터베이스는 각자의 날짜 형식으로에서 timestamp로 변환하는 함수를 가지고 있습니다. (예: MySQL의 UNIX_TIMESTAMP 함수)

표 1. 다음 문자들은 format 인자 문자열로 인식합니다.

format 문자설명반환값 예
a오전과 오후, 소문자am, pm
A오전과 오후, 대문자AM, PM
B스왓치 인터넷 시간000부터 999
cISO 8601 날짜 (PHP 5에서 추가)2004-02-12T15:19:21+00:00
d일, 앞에 0이 붙는 2자리01부터 31
D요일, 3글자 문자Mon부터 Sun
F월, January, March 등의 완전한 문자 표현January부터 December
g시, 0이 붙지 않는 12시간 형식1부터 12
G시, 0이 붙지 않는 24시간 형식0부터 23
h시, 0이 붙는 12시간 형식01부터 12
H시, 0이 붙는 24시간 형식00부터 23
i분, 0이 붙는 형식00부터 59
I (대문자 i)일광 절약 시간 여부일광 절약 시간이면 1, 아니면 0
j일, 0이 붙지 않는 형식1부터 31
l (소문자 'L')요일, 완전한 문자 표현Sunday부터 Saturday
L윤년인지 여부윤년이면 1, 아니면 0
m월, 숫자 표현, 0이 붙는 형식01부터 12
M월, 짧은 문자 표현, 3문자Jan부터 Dec
n월, 숫자 표현, 0이 붙지 않는 형식1부터 12
O그리니치 시간(GMT)과의 차이예: +0200
rRFC 2822 형식 날짜예: Thu, 21 Dec 2000 16:01:07 +0200
s초, 0이 붙는 형식00 부터 59
S일 표현을 위한 영어 서수 접미어, 2문자 st, nd, rdth. j와 잘 작동합니다.
t주어진 월의 일수28부터 31
T이 기계의 표준 시간대 설정예: EST, MDT ...
U유닉스 Epoch(January 1 1970 00:00:00 GMT)로부터의 초time() 참고
w요일, 숫자형0(일요일)부터 6(토요일)
WISO-8601 연도의 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가)예: 42 (연도의 42번째 주)
Y연도, 4 자리수 표현예: 1999, 2003
y연도, 2 자리수 표현예: 99, 03
z연도의 일차 (0부터 시작)0부터 365
Z표준 시간대의 오프셋 초. UTC로부터 서쪽의 오프셋은 항상 음수이고, UTC로부터 동쪽의 오프셋은 항상 양수.-43200부터 43200

format 문자열로 인식되지 않는 문자는 그대로 출력합니다. Z 형식은 gmdate()를 이용할 때는 항상 0을 반환합니다.

예 1. date() 예제코드

<?php
// 다음의 출력: Wednesday
echo date("l");

// 다음의 출력: Wednesday 15th of January 2003 05:51:38 AM
echo date("l dS 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));
?>

format 문자열로 인식하는 문자 바로 앞에 백슬래쉬를 붙여서 이스케이프를 함으로써, 인식하는 것 막을 수 있습니다. 백슬래쉬가 붙는 문자가 이미 특별한 의미를 가지고 있다면, 백슬래쉬를 이스케이프해야 합니다.

예 2. date()의 회피 문자

<?php
// 다음의 출력: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

date()mktime()을 함께 사용함으로써 미래나 과거의 시간을 얻을 수 있습니다.

예 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);
?>

참고: 이는 일광 절약 시간을 고려하기 때문에, 단순히 timestamp에 하루나 한달에 해당하는 초를 더하는 것보다 신뢰할 수 있습니다.

date() 형식화의 몇몇 예제. 모든 다른 문자들도 이스케이프 해야함에 주의하십시오. 현재 특별한 의미를 가진 어떤 것이 바람직하지 못한 결과를 가져올 수 있고, 앞으로의 PHP 버전에서는 다른 문자들도 지정될 수가 있습니다. 이스케이프 할 때는, \n이 줄바꿈으로 인식 되는 것과 같은 예을 피하기 위해서는 작은 따옴표를 사용해야만 합니다.

예 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 z ');  // 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 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

다른 언어로 날짜를 형식화 하기 위해서는, setlocale()strftime() 함수를 사용해야 합니다.

참고: getlastmod(), gmdate(), mktime(), strftime(), time().