반응형
Web Development · PHP date
PHP date —
타임스탬프를 사람이 읽는 날짜로 변환
7일 뒤 시간을 "2026년05월10일 14시30분00초" 형식으로
시작 오늘 분석할 코드
<?php $timestamp = time() + (60 * 60 * 24) * 7; $next_week = date('Y년m월d일 H시i분s초', $timestamp); // 더 간결한 대안: date('Y년m월d일 H시i분s초', strtotime('+7 days')) print $next_week; ?>
이 코드는 두 단계로 동작한다 — 먼저 지금부터 7일 뒤의 타임스탬프를 계산하고, 그 숫자를 date로 사람이 읽는 형식으로 바꾼다.
용어 용어 정리
date()타임스탬프를 형식 문자열로 변환
timestamp1970-01-01 00:00:00 UTC부터의 초
time()현재 시간의 타임스탬프 반환
strtotime()"+7 days" 같은 자연어 → 타임스탬프
시간대서버 설정에 따라 결과 달라짐
Y/m/d대문자=4자리, 소문자=2자리
H/i/s시(24h)/분/초
한국어 결합한글 글자도 그대로 사용 가능
1 7일 뒤 타임스탬프 계산
$timestamp = time() + (60 * 60 * 24) * 7; // ↑ ↑ ↑ // 현재 시간 하루의 초수 일 수 // // 1초 × 60 = 1분 // 60초 × 60 = 1시간 (= 3600초) // 3600초 × 24 = 1일 (= 86400초) // 86400초 × 7 = 1주일
"7일 뒤 = 지금 + 7일치 초"라는 식으로 직접 계산. 하지만 더 간결한 방법은 strtotime('+7 days').
2 형식 문자열 — 영문자가 의미를 갖는다
| 코드 | 의미 | 예 |
|---|---|---|
Y |
4자리 연도 | 2026 |
y |
2자리 연도 | 26 |
m |
월 (앞 0) | 05 |
n |
월 (앞 0 없음) | 5 |
d |
일 (앞 0) | 03 |
j |
일 (앞 0 없음) | 3 |
H |
24시간 시 (00~23) | 14 |
h |
12시간 시 (01~12) | 02 |
i |
분 (00~59) | 30 |
s |
초 (00~59) | 45 |
D |
요일 약어 | Sun |
l |
요일 풀네임 | Sunday |
3 한글 등 일반 문자는 그대로
date('Y년m월d일 H시i분s초', $ts) // → "2026년05월10일 14시30분00초" // "년" "월" "일" "시" "분" "초"는 형식 코드가 아니므로 그대로 출력
※ 다만 "F"(전체 월 이름) 같은 코드와 겹치는 글자가 있으면 의도와 다를 수 있다. 의심되면 백슬래시 이스케이프:
\Y는 "Y" 글자.
반응형
4 시간대 설정의 중요성
// 서버가 UTC라면 (대부분의 호스팅) date_default_timezone_set('Asia/Seoul'); // 그 후 date(), time(), strtotime() 모두 한국 시간 기준
이걸 안 하면 9시간이 어긋난 결과가 나온다. PHP 진입점(예: index.php)에 한 번 설정해두면 안전.
5 더 짧고 깔끔한 방법
// 원본 — 직접 초 계산 $ts = time() + (60 * 60 * 24) * 7; $str = date('Y년m월d일', $ts); // 권장 — strtotime $str = date('Y년m월d일', strtotime('+7 days')); // 더 권장 — DateTime 객체 (PHP 5.2+) $str = (new DateTime('+7 days'))->format('Y년m월d일');
6 자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
| 시간대 미설정 | 9시간 어긋남 | date_default_timezone_set('Asia/Seoul') |
| 대문자/소문자 혼동 | 4자리 vs 2자리, 24h vs 12h | "Y(4)/y(2), H(24)/h(12)" 기억 |
| $timestamp 생략 | 현재 시간으로 처리됨 (의도 X) | 두 번째 매개변수 명시 |
| 한글 안에 형식 코드 섞임 | 의도치 않은 글자가 변환됨 | 의심 글자는 \로 이스케이프 |
핵심 한 줄 요약
date()타임스탬프 → 형식 문자열
매개변수(형식, 타임스탬프) — 두 번째 생략 시 현재
Y/m/d/H/i/s연/월/일/시/분/초의 형식 코드
한글형식 코드 외 글자는 그대로 출력
시간대date_default_timezone_set 필수
7일 뒤 권장strtotime('+7 days')가 깔끔
현대식DateTime 객체와 format() 메서드
반응형
'php' 카테고리의 다른 글
| PHP mktime — 특정 날짜·시각의 타임스탬프 만들기 완전 정리 (0) | 2026.06.16 |
|---|---|
| PHP time — 유닉스 타임스탬프 가져오기 완전 정리 (0) | 2026.06.16 |
| PHP mb_strlen vs strlen — 한글 글자수와 바이트수 차이 완전 정리 (0) | 2026.06.15 |
| PHP htmlspecialchars — HTML 특수문자 이스케이프 + XSS 방어 완전 정리 (1) | 2026.06.15 |
| PHP strip_tags — HTML 태그 제거 완전 정리 (0) | 2026.06.15 |
왕진 블로그

댓글