2016-12-14 6 views
-3

이 주제에 대해 몇 가지 질문을 보았습니다. 모두 동일한 기본 답변을 가지고 있습니다. microtime()을 사용하여 시작 및 종료 시간을 기록한 다음 빼십시오. 이벤트가 초를 증가시키는 시점을 제외하고는 대부분이 기능이 작동합니다. 이 시점에서 종료 시간은 시작 시간보다 짧을 수 있습니다.PHP의 경과 시간은?

microtime()에 초를 더하여 초 + 마이크로 시간을 얻을 수있는 함수를 사용할 수 있습니까?

예 : documentation에서

microtime(true) 

:

function getSMtime() { 
    return time() + (microtime()/1000000); 
} 

$start = getSMtime(); 
... some code to be timed ... 
$end = getSMtime(); 
echo "Time elapsed: " . ($end - $start) . " seconds."; 
+2

"그 시점에서 종료 시간이 시작 시간보다 짧을 수 있습니다." 우주를 파괴하지 마라. –

답변

6

당신은 결과로 플로트를 얻기 위해,하지 문자열을 인수 true을 제공해야

기본적으로

, microtime()은 "msec sec"형식으로 문자열을 반환합니다. 여기서 sec는 초 수입니다. Unix 신기원 (0:00:00 1 월 1 일 1,970 GMT) 이후의 ond와 msec는 초부터 경과 된 마이크로 초를 측정하며 또한 초 단위로 표시됩니다.

TRUE으로 설정하면 microtime()은 유닉스 에포크 이후의 현재 시간을 초 단위로 나타내는 float를 가장 가까운 마이크로 초로 나타냅니다. 이 인수를 제공하지 않으면 결과적으로

는, 반환 값은 문자열과 같은 : 첫 번째 부분은

0.65538700 1481746900

... 항상 0과 1 사이의 값입니다. 결과 문자열을 1000000으로 나누면 숫자로 암시 적으로 변환되어 문자열의 두 번째 부분이 무시됩니다. 따라서 실제로는 마이크로 초 단위로만 계산할 수 있습니다. 부분 타임 스탬프입니다.

결론 : true 인수를 사용하십시오.