PHP의 date_format() 함수는 DateTime 객체의 날짜와 시간을 지정한 형식(format)에 맞춰 변환하여 문자열로 반환하는 함수입니다. 날짜 데이터를 원하는 모양으로 출력할 때 매우 유용하게 사용됩니다.
문법(Syntax)
date_format(obj, format)
매개변수(Parameters)
obj − 포맷을 적용할 DateTime 객체
format − 결과를 어떤 형식으로 출력할지 지정하는 포맷 문자열로, 아래 문자들을 조합하여 사용합니다.
날짜 관련 포맷 문자
d − 일자, 두 자리 표기 (01 ~ 31)
D − 요일의 축약 텍스트 (Mon, Tue 등 세 글자)
j − 앞자리 0 없는 일자 (1 ~ 31)
l(소문자 L) − 요일의 전체 이름 (Monday ~ Sunday)
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 − 월의 축약 텍스트 (Jan, Feb 등 세 글자)
n − 앞자리 0 없는 숫자 월 (1 ~ 12)
t − 해당 월의 총 일수 (28 ~ 31)
L − 윤년 여부 (윤년이면 1, 아니면 0)
o − ISO-8601 연도 번호
Y − 네 자리 연도 (예: 2018)
y − 두 자리 연도 (예: 18)
시간 관련 포맷 문자
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 − 분, 앞자리 0 포함 (00 ~ 59)
s − 초, 앞자리 0 포함 (00 ~ 59)
시간대 및 특수 포맷 문자
e − 시간대 식별자 (예: UTC, Atlantic/Azores)
I(대문자 i) − 서머타임 적용 여부 (적용 중이면 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_format() 함수는 포맷에 성공하면 변환된 날짜 문자열을 반환하고, 실패하면 FALSE를 반환합니다.
사용 예제
다음은 date_create()로 생성한 DateTime 객체를 date_format()으로 원하는 형식으로 출력하는 예제입니다.
<?php
$dt = date_create("2018-09-30");
echo date_format($dt,"Y/m/d H:i:s");
?>
실행 결과
2018/09/30 00:00:00
위 예제에서 Y/m/d H:i:s 포맷 문자를 사용해 '연도/월/일 시:분:초' 형태로 날짜가 출력된 것을 확인할 수 있습니다. 이처럼 다양한 포맷 문자를 조합하면 프로젝트에서 필요한 거의 모든 날짜·시간 형식을 손쉽게 만들어낼 수 있습니다.