PHP의 gettimeofday() 함수는 운영체제에서 현재 시간 정보를 가져와 배열 또는 실수(float) 형태로 반환하는 함수입니다. 정밀한 시간 측정이나 타임스탬프 생성이 필요할 때 유용하게 사용됩니다.
문법(Syntax)
gettimeofday(return_float)
매개변수(Parameters)
return_float −
TRUE로 설정하면 연관 배열 대신 실수형(float) 값이 반환됩니다. 생략하거나FALSE일 경우 배열이 반환됩니다.
반환값(Return Value)
gettimeofday() 함수는 기본적으로 다음 키를 가진 연관 배열(associative array)을 반환합니다.
[sec] − Unix Epoch(1970년 1월 1일 00:00:00 UTC) 이후 경과한 초 단위 시간
[usec] − 마이크로초(microseconds) 단위 값
[minuteswest] − 그리니치 표준시(GMT)보다 서쪽으로 떨어진 시간(분 단위)
[dsttime] − 일광 절약 시간(DST) 보정 방식의 유형
예제 1: 배열 형태로 출력하기
매개변수 없이 호출하면 연관 배열이 반환됩니다.
<?php
print_r(gettimeofday());
?>
출력 결과
Array (
[sec] => 1539234547
[usec] => 322766
[minuteswest] => 0
[dsttime] => 0
)
예제 2: 실수형(float)으로 출력하기
두 번째 예제는 true를 인자로 전달하여 실수형 값을 반환받는 경우입니다.
<?php
echo gettimeofday(true);
?>
출력 결과
1539172203.5542
예제 3: sec과 usec 조합하기
배열의 각 키에 접근해 초와 마이크로초를 조합하여 출력할 수도 있습니다.
<?php
$res = gettimeofday(); echo "$res[sec].$res[usec]";
?>
출력 결과
1539172298.346375
참고 사항
PHP 7.1.0부터 gettimeofday(true)처럼 실수형으로 받는 방식 외에도, microtime() 함수와 함께 활용하면 더욱 정밀한 실행 시간 측정이 가능합니다. 또한 단순히 Unix 타임스탬프만 필요하다면 time() 함수를 사용하는 것이 더 효율적입니다.