본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP date — 타임스탬프를 사람이 읽는 형식으로 완전 정리

by 왕진 2026. 6. 15.
반응형

 

 

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() 메서드
반응형

댓글