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().