반응형
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 객체
활용고정 시각, 이벤트 시작일, 비교 기준
반응형
'php' 카테고리의 다른 글
| PHP file_get_contents — 파일 내용을 한 번에 읽기 완전 정리 (0) | 2026.06.16 |
|---|---|
| PHP checkdate — 날짜 유효성 검사 완전 정리 (0) | 2026.06.16 |
| PHP time — 유닉스 타임스탬프 가져오기 완전 정리 (0) | 2026.06.16 |
| PHP date — 타임스탬프를 사람이 읽는 형식으로 완전 정리 (0) | 2026.06.15 |
| PHP mb_strlen vs strlen — 한글 글자수와 바이트수 차이 완전 정리 (0) | 2026.06.15 |
왕진 블로그

댓글