본문 바로가기

비개발자의 개발 일지

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

시리즈 보기
php

PHP time — 유닉스 타임스탬프 가져오기 완전 정리

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

 

 

Web Development · PHP time

PHP time() —
지금 이 순간의 유닉스 타임스탬프

현재 시각을 1970-01-01부터의 초 단위 정수로
시작 오늘 분석할 코드
<?php $now = time(); print $now; ?>
1746230400 (실행 시점에 따라 다름)

10자리쯤 되는 큰 정수가 나온다. 이 숫자가 의미하는 건 "1970년 1월 1일 자정(UTC)부터 지금까지 흐른 초"다.

용어 용어 정리
time()현재 유닉스 타임스탬프 반환
유닉스 타임스탬프1970-01-01 00:00:00 UTC부터의 초
epoch기준 시점 — 1970년
UTC세계 표준시 (시간대 무관 기준)
microtime()초보다 정밀한 마이크로초 단위
실무로그·캐시 키·비교 연산에 가장 유용
2038 문제32비트 환경에서 2038년 한도
시간대 무관time()은 언제나 UTC 기준 정수

1 왜 1970년부터인가?

유닉스 운영체제가 만들어진 시기에 가까운 둥근 시작점으로 1970년 1월 1일 자정(UTC)을 잡았다. 이 약속이 표준이 되어 지금도 모든 시스템이 사용한다.


2 타임스탬프의 장점
· 비교가 단순하다 — 두 시각 비교는 정수 두 개 비교일 뿐
· 시간 차이 계산이 쉽다 — 빼면 초 단위 차이
· 저장이 간결하다 — DB의 INT 한 컬럼
· 시간대 의존성 없다 — 같은 순간은 같은 숫자

3 활용 예
// 두 시점 사이 초 차이 $elapsed = time() - $startTime; // 1시간 후 $oneHourLater = time() + 3600; // 캐시 키 (10분 단위) $cacheKey = "data_" . floor(time() / 600); // 캐시 만료 체크 if (time() > $cacheExpireAt) { ... } // 로그 파일 이름 $logFile = "log_" . date('Y-m-d', time()) . ".txt";

 

반응형

 

4 더 정밀한 시간 — microtime
$start = microtime(true); // 1746230400.123456 (소수점 포함) // ...어떤 작업... $elapsed = microtime(true) - $start; echo number_format($elapsed, 4) . "초"; // "0.0234초"

밀리초·마이크로초 단위 측정이 필요하면 microtime(true)를 쓴다.


5 자주 하는 실수
// 잘못 — time()은 시간대 영향 안 받지만, date()는 받음 $ts = time(); echo date('H', $ts); // 서버 시간대 따라 다름 // 항상 같은 결과를 원하면 echo gmdate('H', $ts); // UTC 기준 (시간대 무관)

핵심 한 줄 요약

time()현재 유닉스 타임스탬프 (정수 초)
유닉스 시작점1970-01-01 00:00:00 UTC
시간대 무관언제 어디서 호출해도 같은 순간이면 같은 값
활용로그, 캐시, 만료, 시간 차이 계산
microtime(true)소수점 포함 마이크로초 단위
date와 짝date($fmt, time())로 사람 읽는 형식
2038 문제32비트 환경에서 2038년 한도 (PHP는 64비트면 OK)
반응형

댓글