array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.microtime.php', 1 => 'microtime', ), 'up' => array ( 0 => 'ref.datetime.php', 1 => '日付・時刻 関数', ), 'prev' => array ( 0 => 'function.localtime.php', 1 => 'localtime', ), 'next' => array ( 0 => 'function.mktime.php', 1 => 'mktime', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/datetime/functions/microtime.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
microtime — 現在の Unix タイムスタンプをマイクロ秒まで返す
microtime() は、現在の Unix タイムスタンプをマイクロ秒単位で返します。 この関数は、gettimeofday() システムコールをサポートする オペレーティングシステムでのみ使用できます。
パフォーマンスの計測には、hrtime() を使うことをお勧めします。
デフォルトでは、microtime() は "msec sec"
形式の文字列を返します。ただし、sec
は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT)
からの経過秒数、msec
は sec
から経過したマイクロ秒数を秒単位、つまり小数で表したものです。
as_float
を
true
に設定すると、microtime() は Unixエポック からの経過秒数を
マイクロ秒で正確になるように float で表したものを返します。
例1 タイマスクリプト実行
<?php
$time_start = microtime(true);
// しばらくスリープ
usleep(100);
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Did nothing in $time seconds\n";
?>
例2 microtime() と REQUEST_TIME_FLOAT
の例
<?php
// ランダムな時間のスリープ
usleep(mt_rand(100, 10000));
// REQUEST_TIME_FLOAT をスーパーグローバル $_SERVER から取得できます。
// ここにはリクエスト開始時のタイムスタンプがマイクロ秒の精度で記録されています。
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "Did nothing in $time seconds\n";
?>