PHP의 date() 함수는 로컬 시간과 날짜를 원하는 형식으로 포맷팅하는 데 사용되는 대표적인 내장 함수입니다. 이 함수는 지정된 형식(format) 문자열에 따라 결과를 문자열로 반환하며, 타임스탬프가 함께 주어지면 해당 시점을 기준으로 하고, 주어지지 않으면 현재 시간을 기준으로 처리합니다.
문법(Syntax)
date(format, timestamp)
매개변수(Parameters)
timestamp − 정수형 Unix 타임스탬프입니다. 값을 지정하지 않으면 기본적으로 현재 로컬 시간이 사용됩니다.
format − 결과를 어떤 형식으로 반환할지 결정하는 형식 문자열입니다.
날짜 관련 형식 문자
d − 월의 일자, 두 자리 (01~31)
D − 요일의 축약 텍스트 표현 (세 글자)
j − 선행 0 없이 월의 일자 (1~31)
l(소문자 'L') − 요일의 전체 텍스트 표현
N − 요일의 ISO-8601 숫자 표현 (월요일 = 1, 일요일 = 7)
S − 일자의 영어 서수 접미사, 두 글자 (st, nd, rd, th — j와 함께 사용하기 좋음)
w − 요일의 숫자 표현 (일요일 = 0, 토요일 = 6)
z − 연중 몇 번째 날인지 (0~365)
W − ISO-8601 기준 연중 주차 (주는 월요일부터 시작)
F − 월의 전체 텍스트 표현 (January~December)
m − 월의 두 자리 숫자 표현 (01~12)
M − 월의 축약 텍스트 표현 (세 글자)
n − 선행 0 없이 월의 숫자 표현 (1~12)
t − 해당 월의 총 일수
L − 윤년 여부 (윤년이면 1, 아니면 0)
o − ISO-8601 연도 번호
Y − 네 자리 연도 표현
y − 두 자리 연도 표현
시간 관련 형식 문자
a − 소문자 am 또는 pm
A − 대문자 AM 또는 PM
B − Swatch 인터넷 시간 (000~999)
g − 12시간 형식의 시간, 선행 0 없음 (1~12)
G − 24시간 형식의 시간, 선행 0 없음 (0~23)
h − 12시간 형식의 시간, 두 자리 (01~12)
H − 24시간 형식의 시간, 두 자리 (00~23)
i − 분, 두 자리 (00~59)
s − 초, 두 자리 (00~59)
타임존 및 기타 형식 문자
e − 타임존 식별자 (예: UTC, Atlantic/Azores)
I(대문자 i) − 서머타임(Daylight Saving Time) 적용 여부 (적용 중이면 1, 아니면 0)
O − 그리니치 표준시(GMT)와의 시차, 시간 단위 (예: +0100)
T − PHP가 실행되는 서버의 타임존 설정 (예: EST, MDT)
Z − 초 단위 타임존 오프셋. UTC보다 서쪽은 음수, 동쪽은 양수 (-43200~43200)
c − ISO-8601 형식의 날짜 (예: 2004-02-12T15:19:21+00:00)
r − RFC 2822 형식의 날짜 (예: Thu, 21 Dec 2000 16:01:07 +0200)
U − Unix Epoch(1970년 1월 1일 00:00:00 GMT) 이후 경과한 초
반환 값(Return)
date() 함수는 지정된 형식 문자열에 따라 포맷된 날짜·시간 문자열을 반환합니다. 타임스탬프가 주어지면 해당 시점을, 주어지지 않으면 현재 시간을 기준으로 결과를 생성합니다.
사용 예제
다음은 date() 함수의 기본적인 사용 예입니다.
<?php
date_default_timezone_set('UTC');
echo date("l");
echo "<br>";
echo date('l dS \of F Y h:i:s A');
echo "<br />";
?>
실행 결과
Thursday Thursday 11th of October 2018 05:05:34 AM
추가 예제
미리 정의된 날짜 상수를 활용한 또 다른 예제를 살펴보겠습니다.
<?php echo date(DATE_RFC822) . "<br>"; echo date(DATE_ATOM, mktime(0, 0, 0, 11, 7, 2017)); ?>
실행 결과
Thu, 11 Oct 18 05:06:15 +0000 2017-11-07T00:00:00+00:00
이처럼 date() 함수는 하나의 함수만으로도 다양한 형식의 날짜와 시간을 손쉽게 출력할 수 있어, 게시판 작성일 표기, 로그 기록, 스케줄링 등 웹 개발 전반에서 폭넓게 활용됩니다.