PHP에서는 대부분의 시간 형식이 UNIX 타임스탬프로 표현되며, UNIX 타임스탬프는 시간 측정의 최소 단위인 s(초)를 기반으로 합니다. 이는 일부 응용 프로그램에서는 충분히 정확하지 않으므로 microtime()을 호출하여 현재 UNIX 타임스탬프와 마이크로초 수를 반환할 수 있습니다. 이 함수의 프로토타입은 다음과 같습니다.
mix microtime([bool get_as_float]); //현재 UNIX 타임스탬프와 마이크로초를 반환합니다.
이 함수에 선택적 부울 매개변수를 제공할 수 있습니다. 호출 시 이 매개변수가 제공되지 않으면 이 함수는 "msec sec" 형식의 문자열을 반환합니다. 여기서 sec는 UNIX epoch 이후의 초 수이고 msec는 마이크로파트입니다. 문자열의 두 부분은 모두 초 단위로 반환됩니다. get_as_float 인수가 주어지고 해당 값이 TRUE와 동일하면 microtime()은 부동 소수점 숫자를 반환합니다. 소수점 이전에는 여전히 타임스탬프 형식으로 표현되지만, 소수점 이후에는 미묘한 값을 나타냅니다. 단, PHP5.0 버전에서는 get_as_float 매개변수가 새로 추가되었기 때문에 PHP5 이전 버전에서는 이 매개변수를 사용하여 부동 소수점 수를 직접 요청할 수 없다는 점에 유의해야 합니다. 다음 예에서는 microtime() 함수를 두 번 호출하여 PHP 스크립트를 실행하는 데 필요한 시간을 계산합니다. 코드는 다음과 같습니다.
// 스크립트 실행 시간을 계산하는 클래스 생성
수업 타이머{
private $startTime = 0; //스크립트가 실행되기 시작하는 시간을 저장합니다(마이크로초 단위로 저장)
private $stopTime = 0; //스크립트 실행이 종료되는 시간을 저장합니다(마이크로초 단위로 저장)
//스크립트 시작 부분에서 호출하여 스크립트 시작 시간의 마이크로초 값을 가져옵니다
함수 시작(){
$this->startTime = microtime(true); //얻은 시간을 멤버 속성 $startTime에 할당합니다
}
//스크립트 종료 시 스크립트 종료 시간의 마이크로초 값을 사용합니다
함수 중지(){
$this->stopTime = microtime(true); //얻은 시간을 멤버 속성 $stopTime에 할당합니다
}
//동일한 스크립트에서 두 획득 시간의 차이를 반환합니다
함수 소비(){
//계산 후 4를 5로 반올림하여 4자리를 유지하고 반환
return round(($this->stopTime-$this->startTime),4);
}
}
$timer= 새 타이머()
$timer->start(); //스크립트 파일이 실행되기 시작할 때 이 메소드를 호출하세요
usleep(1000); //스크립트의 테마 내용, 여기서는 예를 들어 1밀리초 동안 잠을 잘 수 있습니다
$timer->stop(); //스크립트 파일 끝에서 이 메소드를 호출하세요
echo "걸렸습니다".$timer->spent()."";
?>
위 스크립트에서는 스크립트 실행 시간을 계산하는 데 사용되는 Timer 클래스를 선언합니다. 스크립트 실행이 시작되는 시간을 가져오려면 스크립트 실행 시작 시 이 클래스의 start() 메서드를 호출해야 합니다. 그리고 스크립트 실행이 끝나면 이 클래스의 stop() 메소드를 호출하여 스크립트가 종료되는 시간을 가져옵니다. 그런 다음 이 클래스의 send() 메소드에 액세스하면 스크립트를 실행하는 데 필요한 시간을 얻을 수 있습니다.