date_timezone_set
getdate
Date/Time 함수 목록
PHP Manual

# date

(PHP 4, PHP 5)

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

### 설명

string date ( string `$format` [, int `$timestamp` ] )

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

### 인수

`formant`

  출력하는 날짜 string의 형식. 아래 형식화 옵션을 참고하십시오.

  다음 문자들을 `format` 인수 문자열로 인식합니다.
  `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` 인수는 `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 등)

Tip

PHP 5.1부터 요청의 시작 타임스탬프가 $_SERVER['REQUEST_TIME']에 존재합니다.

### 참고

- getlastmod() - 페이지를 수정한 최종 시간을 얻습니다
- gmdate() - Format a GMT/UTC date/time
- mktime() - Get Unix timestamp for a date
- strftime() - Format a local time/date according to locale settings
- time() - Return current Unix timestamp

date_timezone_set
getdate
Date/Time 함수 목록
PHP Manual