microtime

関数の概要

PHPの microtime 関数は、現在のUnixタイムスタンプをマイクロ秒単位まで取得できる関数です。秒単位のタイムスタンプに加えて、その秒の中のミリ秒やマイクロ秒の情報も取得できるため、より高精度な時間測定が求められる場面で有用です。

パラメータの説明

  • bool $as_float(省略可能):
    true を指定すると、浮動小数点数(float)形式で現在時刻を返します。
    false (デフォルト)の場合は文字列形式で「マイクロ秒 秒」の形で返します。

戻り値

パラメータ $as_float の値によって異なります。

  • false(デフォルト)時:文字列で「マイクロ秒秒」の形式(例:”0.123456 1617181920″)
  • true時:浮動小数点数の形式(例:1617181920.123456)

使用例

基本的な使い方(文字列形式)

<?php
echo microtime();
// 出力例: 0.123456 1617181920
?>

この例では、文字列形式で現在のマイクロ秒付きタイムスタンプを取得しています。

浮動小数点数形式で取得する方法

<?php
$time = microtime(true);
echo $time;
// 例: 1617181920.123456
?>

trueを指定することで、浮動小数点数形式のタイムスタンプが得られます。計算や比較がしやすくおすすめです。

処理時間の計測に使う例

<?php
$start = microtime(true);

// 処理(例:スリープ)
usleep(500000);

$end = microtime(true);
$elapsed = $end - $start;

echo "処理時間: " . $elapsed . "秒";
?>

このように、処理の開始と終了時刻をマイクロ秒単位で計測して、処理時間の差を計算することができます。

関連する関数

  • time() – 秒単位のUnixタイムスタンプを取得
  • microtime() – 本記事の対象関数
  • hrtime() – ナノ秒精度の高解像度タイマー
  • usleep() – マイクロ秒単位のスリープを実装

まとめ

microtime 関数は、秒単位だけでなくマイクロ秒単位までの現在時刻を取得できるため、高精度な時間計測や処理時間の計測に便利です。
文字列形式と浮動小数点数形式を選べるため、用途に応じて使い分けましょう。特に計算目的の場合は microtime(true) を使うのがおすすめです。