PHP에서는 종종 현재 시간을 가져 와서 출력을 형식화해야합니다. 기본 날짜 함수는 정확도 만 2 초만 지원합니다. 그러나 로깅, 성능 모니터링 등과 같은 일부 시나리오에서는 출력 시간을 밀리 초까지 정확해야합니다. 이 기사는 gettimeofday 및 날짜 기능을 결합하여 시간 형식 출력을 밀리 초과 달성하는 방법을 소개합니다.
gettimeofday 는 현재 시간을 가져 오는 기능으로 현재 Unix 타임 스탬프 및 마이크로 초 정보를 반환합니다. 반환 값은 어레이 또는 부동 소수점 번호 일 수 있으며, 이는 초와 마이크로 초를 포함합니다.
print_r(gettimeofday());
출력 예 :
Array
(
[sec] => 1617181723
[usec] => 123456
[minuteswest] => 0
[dsttime] => 0
)
여기서 SEC 는 현재 초 수 이며 USEC는 현재 초의 마이크로 초입니다.
PHP의 날짜 함수는 초 시간 스탬프를 형식화 할 수있는 반면 밀리 초 부분은 gettimeofday 함수를 통해 얻을 수 있습니다. 간단한 예제 코드는 다음과 같습니다.
<?php
$time = gettimeofday();
$sec = $time['sec']; // 초 수
$usec = $time['usec']; // 微초 수
$milliseconds = floor($usec / 1000); // 마이크로 초를 밀리 초로 변환하십시오
// 시간 문자열을 형식화하십시오
$formattedTime = date('Y-m-d H:i:s', $sec) . '.' . str_pad($milliseconds, 3, '0', STR_PAD_LEFT);
echo $formattedTime;
?>
출력 결과 예 :
2025-05-24 15:43:12.123
여기서 STR_PAD는 밀리 초가 3 자리 미만의 0을 추가하는 것과 같이 항상 3 자리 숫자인지 확인하는 데 사용됩니다.
gettimeofday ()는 현재 시간의 초와 마이크로 초를 반환합니다.
날짜를 사용하여 초 ( 'ymd h : i : s', $ sec)를 사용합니다.
마이크로 초를 1000으로 나누어 밀리 초로 변환하십시오.
str_pad를 사용하여 밀리 초 부분이 트리플 숫자인지 확인하십시오.
멀티플렉싱의 편의를 위해이를 기능으로 캡슐화 할 수 있습니다.
<?php
function getCurrentTimeWithMilliseconds() {
$time = gettimeofday();
$sec = $time['sec'];
$usec = $time['usec'];
$milliseconds = floor($usec / 1000);
return date('Y-m-d H:i:s', $sec) . '.' . str_pad($milliseconds, 3, '0', STR_PAD_LEFT);
}
// 사용의 예
echo getCurrentTimeWithMilliseconds();
?>
getCurrentTimeWithMilliseconds ()를 호출하여 밀리 초의 시간 문자열을 얻으십시오.
gettimeofday 와 날짜 함수를 결합하여 PHP의 시간 형식 출력과 밀리 초의 시간 형식 출력을 쉽게 구현할 수 있습니다. 이 방법은 추가 확장에 의존하지 않으며 호환 가능하며 정확한 타임 스탬프가 필요한 시나리오에 적합합니다.
<?php
function getCurrentTimeWithMilliseconds() {
$time = gettimeofday();
$sec = $time['sec'];
$usec = $time['usec'];
$milliseconds = floor($usec / 1000);
return date('Y-m-d H:i:s', $sec) . '.' . str_pad($milliseconds, 3, '0', STR_PAD_LEFT);
}
echo getCurrentTimeWithMilliseconds();
?>