date
(PHP 4, PHP 5)
date — 로컬 날짜/시간을 형식화합니다.
설명
정수형으로 주어지는 timestamp 나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다. 즉 timestamp 는 선택적이고, 기본값은 time()의 값입니다.
Note: 전형적인 timestamp의 유효 범위는 1901년 12월 13일 금요일 20:45:54 GMT부터 2038년 1월 19일 화요일 03:14:07 GMT입니다. (이것은 부호 있는 32비트 정수형의 최소와 최대값에 대응합니다. 윈도우즈에서는 이 값은 1970-01-01부터 2038-01-19로 제한됩니다)
Note: 날짜를 표시하는 문자열로부터 timestamp를 생성하기 위해서, strtotime()을 사용할 수 있습니다. 또한, 몇몇 데이터베이스는 각자의 날짜 형식으로에서 timestamp로 변환하는 함수를 가지고 있습니다. (예: MySQL의 UNIX_TIMESTAMP 함수)
format 문자 | 설명 | 반환값 예 |
---|---|---|
a | 오전과 오후, 소문자 | am, pm |
A | 오전과 오후, 대문자 | AM, PM |
B | 스왓치 인터넷 시간 | 000부터 999 |
c | ISO 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 |
r | » RFC 2822 형식 날짜 | 예: Thu, 21 Dec 2000 16:01:07 +0200 |
s | 초, 0이 붙는 형식 | 00 부터 59 |
S | 일 표현을 위한 영어 서수 접미어, 2문자 | st, nd, rd나 th. j와 잘 작동합니다. |
t | 주어진 월의 일수 | 28부터 31 |
T | 이 기계의 표준 시간대 설정 | 예: EST, MDT ... |
U | 유닉스 Epoch(January 1 1970 00:00:00 GMT)로부터의 초 | time() 참고 |
w | 요일, 숫자형 | 0(일요일)부터 6(토요일) |
W | ISO-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을 반환합니다.
Example#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 문자열로 인식하는 문자 바로 앞에 백슬래쉬를 붙여서 이스케이프를 함으로써, 인식하는 것 막을 수 있습니다. 백슬래쉬가 붙는 문자가 이미 특별한 의미를 가지고 있다면, 백슬래쉬를 이스케이프해야 합니다.
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 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().