PHPでミリ秒を取得する際に少し勘違いしていたので忘れないようにメモしておきます。
ミリ秒を取得するためには、microtime関数を使います。
microtime関数とは
説明
現在の Unix タイムスタンプをマイクロ秒単位で返します。
mixed microtime ([ bool $get_as_float = false ] )
引数は1つで、任意指定です。
第1引数 $get_as_float:文字列ではなく float で返すかどうか。(初期値は false )
サンプル
第1引数を指定しない
デフォルトでは、microtime関数は “msec sec” 形式の文字列を返します。
//実行結果例:0.10490200 1495167628
echo microtime();
//以下も同様の結果になる
echo microtime(false);
0.10490200の部分がマイクロ秒数を秒単位で表したものです。
1495167628の部分がそれ以外を表したもの
第1引数に true を指定する
trueにすると float で帰ってきます。小数点以下がマイクロ秒数
//実行結果例:1495167628.1229
echo microtime(true);
ミリ秒のみ取得する
第1引数に true をセットして小数点以下3桁(ミリ秒)を取得
小数点以下3桁を取得しなければならないのに、小数点以下は全てミリ秒と思い込んでました…
//実行結果例:124
echo substr(explode(".", microtime(true))[1], 0, 3);
date関数を組み合わせて、日時 + ミリ秒を取得する
最終的に出力したい日付形式にして利用する
//実行結果例:2017-05-19 13:20:28.123
list($sec, $msec) = explode(".", microtime(true));
echo date('Y-m-d H:i:s', $sec) . '.' . substr($msec, 0, 3);
//一発で取得する場合
echo date("Y-m-d H:i:s") . "." . substr(explode(".", microtime(true))[1], 0, 3);
以上、microtime関数を使ってミリ秒を取得するメモでした。