(PHP 4, PHP 5)
microtime — 現在の Unix タイムスタンプをマイクロ秒まで返す
microtime() は、現在の Unix タイムスタンプをマイクロ秒単位で返します。 この関数は、gettimeofday() システムコールをサポートする オペレーティングシステムでのみ使用できます。
デフォルトでは、 microtime() は "msec sec" 形式の文字列を返します。ただし、sec は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT) から計算した秒数、msec は sec から経過したマイクロ秒数です。
get_as_float
を
TRUE
に設定すると、 microtime() は結果を
float で返します。
これは、Unix エポックからの経過秒数をマイクロ秒単位で表したものです。
バージョン | 説明 |
---|---|
5.0.0 |
get_as_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";
?>