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기초, #시간대설정

반응형