PHPプログラミング

最終更新日:
公開日:

レシピ

日付・時刻

マイクロ秒単位まで含めたタイムスタンプを取得する

microtime関数を使って、「ミリ秒」や「マイクロ秒」単位のタイムスタンプを取得する方法について解説します。

この記事のポイント

  • ミリ秒、マイクロ秒単位のUNIXタイムスタンプを取得する
  • 返り値は文字列、浮動小数点数の2つから選択できる

タイムスタンプをマイクロ秒単位で取得する

多くの時刻処理でタイムスタンプを扱う場合はtime関数を使うことの方が多いかもしれません。

システムの実行速度などを計測するときなど、「秒」よりも細かい単位である「ミリ秒」「マイクロ秒」で時刻を取得するにはmicrotime関数を使用します。

Note

「ミリ秒」は1/1000秒、「マイクロ秒」は1/1,000,000(100万)までの単位です。

コード例

microtime();

出力結果

string(21) "0.91616600 1547450404"

取得結果は文字列の形式で、半角スペースで区切って「秒」以下の単位と「秒」以上の単位の順に返り値を渡します。
この値をexplode関数などで分割して使用します。

コード例

// 実行開始時刻を取得
$start_t = microtime();
$st = explode( ' ', $start_t);

/*
ここに処理が入る
*/

// 実行終了時刻を取得
$end_t = microtime();
$et = explode( ' ', $end_t);

echo '実行にかかった時間:'.($et[0] - $st[0]);

出力結果

実行にかかった時間:0.115596

上記のような結果の場合、システム実行に115ミリ秒と596マイクロ秒の時間がかかっていることが分かります。

microtime関数に「true」を渡して実行すると、タイムスタンプを浮動小数点数(float型)で取得することができます。

コード例

// 実行開始時刻を取得
$start_t2 = microtime(true);

/*
ここに処理が入る
*/

// 実行終了時刻を取得
$end_t2 = microtime(true);

echo '実行にかかった時間:'.($end_t2 - $start_t2);

出力結果

実行にかかった時間:0.11560106277466

パラメータなしの場合と比べて返り値を「 (半角スペース)」で分割する必要がないため、コードも少し簡略化することができます。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。