본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP mktime — 특정 날짜·시각의 타임스탬프 만들기 완전 정리

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

 

 

Web Development · PHP mktime

PHP mktime —
지정한 날짜·시각의 타임스탬프 만들기

2014-05-07 00:00:00의 타임스탬프 = ?
시작 오늘 분석할 코드
<?php $timestamp = mktime(0, 0, 0, 5, 7, 2014); // 시,분,초, 월,일,년 — 자유롭게 지정 print $timestamp; ?>

time()이 "지금"의 타임스탬프를 주는 것과 달리, mktime"우리가 지정한 시각"의 타임스탬프를 만든다.

용어 용어 정리
mktime()make time — 특정 시각의 타임스탬프 생성
매개변수 순서시, 분, 초, 월, 일, 년
반환값유닉스 타임스탬프 (정수)
vs time()time은 현재, mktime은 지정 시각
vs strtotime()자연어("2014-05-07")도 가능
시간대 의존서버 시간대 기준으로 계산
현대식DateTime 객체 권장
활용생일·이벤트 시작일 등 고정 시각

1 매개변수 순서 — 시·분·초·월·일·년
시간이 먼저, 날짜가 나중이라는 비직관적 순서. 헷갈리지 않게 외워둬야 한다.
mktime(시, 분, 초, 월, 일, 년) // 0 0 0 5 7 2014 // └ 자정 ─┘ └ 5월 7일 ─┘ // // → 2014-05-07 00:00:00의 타임스탬프

2 매개변수 생략하면?
mktime(); // 모두 현재값 (= time()과 동일) mktime(0, 0, 0); // 시·분·초만 지정 → 오늘 자정 mktime(0, 0, 0, 5); // 5월 1일 자정 (현재 연·일 기본) mktime(0, 0, 0, 5, 7); // 올해 5월 7일 자정 mktime(0, 0, 0, 5, 7, 2014); // 명시적 (이 코드)

오른쪽부터 생략 가능. 생략하면 현재의 해당 부분으로 채워진다.


3 date와 함께 — 사람이 읽는 형식으로
$ts = mktime(0, 0, 0, 5, 7, 2014); echo date('Y년m월d일 H시i분', $ts); // → "2014년05월07일 00시00분"

 

반응형

 

4 더 권장되는 방법들
// 옛 방식 — mktime $ts = mktime(0, 0, 0, 5, 7, 2014); // 자연어 방식 — strtotime $ts = strtotime("2014-05-07"); // 객체 방식 — DateTime $dt = new DateTime("2014-05-07"); $ts = $dt->getTimestamp();

현대 PHP에서는 DateTime 객체가 가장 권장된다 — 시간대 처리·산술·포맷이 모두 메서드로 깔끔.


5 자주 하는 실수
실수 증상 해결
매개변수 순서 (년·월·일·시·분·초) 이상한 시각 "시·분·초·월·일·년" 외우기
없는 날짜 (2월 30일) 자동 보정 (3월 2일로) 유효성은 checkdate()
시간대 미설정 예상보다 9시간 어긋남 date_default_timezone_set
2자리 연도 입력 특정 PHP 버전에서 다른 해석 4자리로 명시

핵심 한 줄 요약

mktime()지정 시각의 타임스탬프 생성
매개변수시, 분, 초, 월, 일, 년 (순서 주의!)
vs time()time은 현재, mktime은 지정
생략 가능오른쪽부터 생략 시 현재값 사용
자동 보정유효 범위 밖 날짜는 다음 달로 넘어감
권장strtotime() 또는 DateTime 객체
활용고정 시각, 이벤트 시작일, 비교 기준
반응형

댓글