Php/docs/function.microtime

提供:Dev Guides
< Php
移動先:案内検索

microtime

(PHP 4, PHP 5, PHP 7)

microtime 現在の Unix タイムスタンプをマイクロ秒まで返す


説明

microtime ([ bool $getAsFloat = false ] ) : mixed

microtime() は、現在の Unix タイムスタンプをマイクロ秒単位で返します。 この関数は、gettimeofday() システムコールをサポートする オペレーティングシステムでのみ使用できます。

パフォーマンスの計測には、hrtime() を使うことをお勧めします。


パラメータ

getAsFloat
true を指定すると、microtime() は文字列ではなく float を返すようになります。詳細は、返り値の説明を参照ください。


返り値

デフォルトでは、microtime() は "msec sec" 形式の文字列を返します。ただし、sec は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT) からの経過秒数、msecsec から経過したマイクロ秒数を秒単位で表したものです。

getAsFloattrue に設定すると、microtime() は Unixエポック からの経過秒数を マイクロ秒で正確になるように float で表したものを返します。


例1 microtime() でタイマスクリプト実行

<?php/** * PHP 5の動作を模擬する簡単な関数 */function microtime_float(){    list($usec, $sec) = explode(" ", microtime());    return ((float)$usec + (float)$sec);}$time_start = microtime_float();// しばらくスリープusleep(100);$time_end = microtime_float();$time = $time_end - $time_start;echo "Did nothing in $time seconds\n";?>

例2 PHP 5 におけるタイマスクリプト実行

<?php$time_start = microtime(true);// しばらくスリープusleep(100);$time_end = microtime(true);$time = $time_end - $time_start;echo "Did nothing in $time seconds\n";?>

例3 microtime()REQUEST_TIME_FLOAT の例 (PHP 5.4.0 以降)

<?php// ランダムな時間のスリープusleep(mt_rand(100, 10000));// PHP 5.4.0 以降は、REQUEST_TIME_FLOAT をスーパーグローバル $_SERVER から取得できるようになりました。// ここにはリクエスト開始時のタイムスタンプがマイクロ秒の精度で記録されています。$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];echo "Did nothing in $time seconds\n";?>

参考

  • time() - 現在の Unix タイムスタンプを返す
  • hrtime() - システムの高精度な時刻を取得する