Programming/PHP
[PHP] #31 PHP 날짜/시간 함수 완벽 정리: date, time, strtotime, mktime 총정리
TOASTDEV
2025. 9. 4. 17:00
반응형
안녕하세요 토스트데브입니다.
이번 글에서는 PHP에서 날짜와 시간을 처리할 수 있는 주요 내장 함수들을 정리해보겠습니다.
현재 시간 출력, 포맷 지정, 날짜 계산, 타임스탬프 변환 등은 웹 개발에서 자주 사용되는 기능이며, 실무에서도 매우 중요합니다.
🕒 현재 날짜/시간 구하기
✅ time() – 현재 시각의 유닉스 타임스탬프
echo time(); // 출력: 1693621272 (1970년 1월 1일 이후 초 단위)
✅ date() – 원하는 포맷의 날짜/시간 출력
echo date("Y-m-d H:i:s"); // 출력: 2025-09-02 15:00:00
포맷 문자 | 의미 | 예시 |
Y | 4자리 연도 | 2025 |
y | 2자리 연도 | 25 |
m | 월 (01~12) | 09 |
d | 일 (01~31) | 02 |
H | 시 (00~23) | 15 |
i | 분 (00~59) | 00 |
s | 초 (00~59) | 00 |
🧮 날짜 계산 및 변환
✅ strtotime() – 문자열을 타임스탬프로 변환
echo strtotime("next Monday"); // 다음 월요일의 타임스탬프
echo date("Y-m-d", strtotime("+1 week")); // 오늘 기준 1주일 뒤
📌 strtotime()은 "tomorrow", "last Friday", "+2 days" 같은 자연어 형식도 지원하여 날짜 계산에 매우 유용합니다.
✅ mktime() – 특정 날짜/시간의 타임스탬프 생성
$timestamp = mktime(0, 0, 0, 12, 25, 2025);
echo date("Y-m-d", $timestamp); // 출력: 2025-12-25
📌 구조: mktime(시, 분, 초, 월, 일, 연도)
📆 날짜 차이 계산
$start = strtotime("2025-01-01");
$end = strtotime("2025-12-31");
$diff = ($end - $start) / (60 * 60 * 24); // 일 수 차이
echo "두 날짜 차이: $diff 일"; // 출력: 두 날짜 차이: 364 일
🌐 시간대 설정
✅ date_default_timezone_set() – 시간대 설정
date_default_timezone_set("Asia/Seoul");
echo date("Y-m-d H:i:s"); // 한국 시간 기준 출력
서버 기본값이 UTC일 수 있으므로, 한국 시간 설정 시 필수!
💡 실전 팁
- 날짜 계산에는 strtotime() + date() 조합이 가장 유연하고 직관적
- MySQL 등 DB와 연동할 때는 타임스탬프와 포맷 일치에 주의
- 시간대를 명시하지 않으면 서버 환경의 설정값(timezone)이 반영됨
✅ 마무리
이번 글에서는 PHP에서 날짜와 시간을 다루는 데 필요한 기본 함수들을 모두 정리해보았습니다.
웹 개발에서는 게시글 작성일, 쿠폰 유효기간, 이벤트 마감일, 예약 시스템 등 날짜/시간 처리가 필수적인 기능이 많기 때문에 이런 함수들을 확실히 익혀두면 매우 유용합니다.
#PHP, #날짜함수, #시간함수, #date, #time, #strtotime, #mktime, #타임스탬프, #웹개발, #PHP기초, #시간대설정
반응형