PHP 매뉴얼
이전 |  | 다음

# 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`
`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`을 반환합니다.

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

이전 | 처음으로 | 다음
checkdate | 위로 | getdate