PHP의 time() 함수는 현재 시간을 유닉스 타임스탬프(Unix Timestamp) 형태로 반환하는 내장 함수입니다. 유닉스 타임스탬프란 유닉스 에포크(Unix Epoch), 즉 1970년 1월 1일 00:00:00 GMT를 기준점으로 삼아 그때부터 현재까지 경과된 시간을 초 단위로 측정한 값입니다.
이 방식은 시간대(Timezone)와 무관하게 전 세계 어디서나 동일한 숫자로 시간을 표현할 수 있어, 데이터베이스 저장이나 날짜 계산 등에 널리 활용됩니다.
문법(Syntax)
time()
매개변수(Parameters)
time() 함수는 별도의 매개변수를 받지 않습니다.
반환 값(Return)
유닉스 에포크(1970년 1월 1일 00:00:00 GMT)부터 현재까지의 경과 시간을 초 단위의 정수(integer)로 반환합니다.
예제 1: 일주일 후의 날짜 구하기
다음 예제는 현재 시각에 일주일치 초(7 × 24 × 60 × 60 = 604,800초)를 더해 다음 주의 날짜를 출력합니다.
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>
실행 결과
Now: 2018-10-11
Next Week: 2018-10-18
time()으로 얻은 타임스탬프에 604,800초를 더한 뒤 date() 함수에 두 번째 인자로 전달하면, 원하는 날짜 형식(Y-m-d)으로 손쉽게 변환할 수 있습니다.
예제 2: 타임스탬프를 날짜 형식으로 변환하기
이번에는 time() 함수가 반환하는 원본 타임스탬프 값을 그대로 확인하고, 이를 다시 사람이 읽기 좋은 날짜 형식으로 바꿔보겠습니다.
<?php
$res = time();
echo($res . "<br>");
echo(date("Y-m-d", $res));
?>
실행 결과
1539245504
2018-10-11
첫 번째 줄의 1539245504가 time() 함수가 반환한 원시 타임스탬프 값이며, 두 번째 줄에서 date() 함수를 통해 '연-월-일' 형식으로 변환된 결과를 볼 수 있습니다.
함께 알아두면 좋은 관련 함수
- date(): 타임스탬프를 지정한 형식의 문자열로 변환합니다.
- strtotime(): 날짜/시간 문자열을 타임스탬프로 변환합니다.
- microtime(): 마이크로초 단위까지 포함된 더 정밀한 현재 시간 값을 반환합니다.
- mktime(): 지정한 날짜와 시간에 해당하는 타임스탬프를 생성합니다.
이처럼 time() 함수는 PHP에서 시간 정보를 다루는 가장 기본적인 출발점이며, date(), strtotime() 등의 함수와 조합하면 대부분의 날짜·시간 처리 작업을 간편하게 해결할 수 있습니다.