PHP에서 현재 Unix 타임스탬프(초 단위 시간)를 가져와야 하는 경우가 많습니다.
예를 들어, 현재 시간 확인, 날짜 계산, 타이머 구현, 데이터베이스 저장, 캐시 만료 처리 등에 사용됩니다.
이러한 기능을 수행하는 대표적인 함수가 바로 time() 입니다.
이 글에서는 PHP time() 함수의 사용법, 다양한 활용 예제, date(), strtotime()과의 차이점, 유용한 팁과 주의사항을 체계적으로 정리하겠습니다.
1. time() 함수란?
✅ 기본 문법
int time()
✅ 설명
- time() 함수는 1970년 1월 1일 00:00:00 UTC(Unix Epoch)부터 현재까지의 초(초 단위 타임스탬프)를 반환합니다.
✅ 반환값
- 현재 Unix 타임스탬프를 정수(int)로 반환
2. time() 기본 예제
🔹 현재 Unix 타임스탬프 가져오기
<?php
echo time();
?>
🔹 실행 결과 (예시)
1710143567
➡ 1970년 1월 1일부터 현재까지의 초 단위 시간이 출력됨.
🔹 date() 함수와 함께 사용하여 현재 날짜 출력
<?php
echo date("Y-m-d H:i:s", time());
?>
🔹 실행 결과
2024-03-11 15:52:47
➡ time()으로 가져온 Unix 타임스탬프를 date()를 이용해 YYYY-MM-DD HH:MM:SS 형식으로 변환.
3. time()의 실용적인 활용 예제
🔹 1) 24시간 후의 타임스탬프 계산
<?php
$tomorrow = time() + (24 * 60 * 60); // 현재 시간 + 1일(24시간)
echo date("Y-m-d H:i:s", $tomorrow);
?>
➡ 하루 후의 날짜 및 시간 계산 가능.
🔹 2) 7일 후 만료 기간 설정
<?php
$expiry = time() + (7 * 24 * 60 * 60);
echo "쿠키 만료 날짜: " . date("Y-m-d H:i:s", $expiry);
?>
➡ 7일 후의 만료 날짜를 설정하여 쿠키, 세션, 캐시 등의 만료 처리 가능.
🔹 3) 특정 날짜의 타임스탬프 구하기 (strtotime() 활용)
<?php
$timestamp = strtotime("2024-12-31");
echo $timestamp;
?>
➡ 특정 날짜("2024-12-31")를 Unix 타임스탬프로 변환.
🔹 4) 두 날짜 간의 차이 계산
<?php
$date1 = strtotime("2024-01-01");
$date2 = time(); // 현재 시간
$diff = $date2 - $date1;
$days = floor($diff / (60 * 60 * 24)); // 초를 일(day)로 변환
echo "2024년 1월 1일부터 경과된 일수: $days 일";
?>
➡ 두 날짜 간의 차이를 계산하여 경과된 일수를 구할 수 있음.
🔹 5) 타이머 기능 (페이지 실행 시간 측정)
<?php
$start = time();
sleep(3); // 3초 대기
$end = time();
echo "스크립트 실행 시간: " . ($end - $start) . "초";
?>
➡ time()을 활용하여 코드 실행 시간을 측정할 수 있음.
4. time() vs microtime() vs strtotime() 차이점
함수 설명
time() | 현재 Unix 타임스탬프 반환 (초 단위) |
microtime(true) | 현재 시간을 초 + 마이크로초까지 반환 |
strtotime("2024-12-31") | 특정 날짜를 Unix 타임스탬프로 변환 |
✅ 예제: time() vs microtime(true)
<?php
echo time() . "\n"; // 1710143567 (초 단위)
echo microtime(true) . "\n"; // 1710143567.982312 (마이크로초 포함)
?>
➡ microtime(true)는 초 단위보다 정밀한 시간을 반환할 때 유용.
5. time() 사용 시 주의할 점
✅ PHP 타임존 설정 확인
<?php
date_default_timezone_set("Asia/Seoul");
echo date("Y-m-d H:i:s", time());
?>
➡ 서버의 기본 타임존이 다를 수 있으므로, 명시적으로 설정하는 것이 좋음.
✅ 미래 또는 과거 날짜 비교
<?php
$futureDate = strtotime("2025-01-01");
if ($futureDate > time()) {
echo "미래 날짜입니다.";
} else {
echo "이미 지난 날짜입니다.";
}
?>
➡ 현재 시간을 기준으로 특정 날짜가 미래인지, 과거인지 비교 가능.
✅ 정확한 밀리초 단위 시간이 필요하면 microtime(true) 사용
<?php
echo microtime(true);
?>
➡ 마이크로초(소수점 이하 6자리)까지 포함하여 보다 정밀한 시간 측정 가능.
6. time() 활용 팁
✅ 경과 시간 확인 (게시글 작성 시간 등)
<?php
$created_at = strtotime("2024-03-01 10:00:00");
$now = time();
$diff = $now - $created_at;
$hours = floor($diff / 3600);
$minutes = floor(($diff % 3600) / 60);
echo "$hours시간 $minutes분 전 작성됨";
?>
➡ 특정 시간 이후 경과된 시간을 계산하여 표시 가능.
✅ 쿠키 만료 시간 설정
<?php
setcookie("user", "Alice", time() + 3600); // 1시간 후 만료
?>
➡ time() + 3600을 사용하여 1시간 후 만료되는 쿠키 설정 가능.
✅ 로그 파일 저장 시 타임스탬프 추가
<?php
$logMessage = "[" . date("Y-m-d H:i:s", time()) . "] 시스템 로그 메시지\n";
file_put_contents("log.txt", $logMessage, FILE_APPEND);
?>
➡ 로그 파일 작성 시 시간 정보를 추가하여 기록 가능.
✅ 비밀번호 초기화 유효시간 설정
<?php
$reset_expiry = time() + (60 * 30); // 30분 후 만료
echo "비밀번호 초기화 링크는 " . date("Y-m-d H:i:s", $reset_expiry) . "까지 유효합니다.";
?>
➡ 비밀번호 초기화 요청의 만료 시간을 설정 가능.
7. 결론
PHP의 time() 함수는 현재 시간을 Unix 타임스탬프로 반환하는 필수적인 함수입니다.
이를 활용하면 현재 시간 확인, 날짜 계산, 만료 시간 설정, 로그 기록, 경과 시간 계산 등 다양한 작업을 수행할 수 있습니다.
📌 핵심 요약
✔️ time()은 현재 Unix 타임스탬프(초 단위) 반환
✔️ 날짜 변환 시 date() 또는 strtotime()과 함께 사용
✔️ 쿠키 만료, 비밀번호 재설정 시간, 캐시 만료 등에 활용 가능
✔️ 밀리초 단위 시간이 필요하면 microtime(true) 사용
이제 time()을 활용하여 더욱 효율적인 PHP 개발을 해보세요!
'💻 자주 쓰는 PHP 함수' 카테고리의 다른 글
[PHP 함수] preg_replace() 함수로 패턴 치환 (26) | 2025.03.29 |
---|---|
[PHP 함수] strtotime() 함수로 날짜를 타임스탬프로 변환 (14) | 2025.03.29 |
[PHP 함수] strtolower() 함수 - 문자열 소문자 변환 (14) | 2025.03.28 |
[PHP 함수] json_encode() 함수로 json으로 변환하기 (26) | 2025.03.27 |
[PHP 함수] json_decode() 함수로 Json을 배열로 변환 (6) | 2025.03.27 |