最終更新日:
公開日:
レシピ
日付・時刻
マイクロ秒単位まで含めたタイムスタンプを取得する
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
パラメータなしの場合と比べて返り値を「 (半角スペース)」で分割する必要がないため、コードも少し簡略化することができます。