PHPのミリ秒変換をよくわかる解説で簡単理解!

PHPでdate関数を使うと、通常意識するのは秒までかと思います。

しかし、それ以上細かい単位ミリ秒を扱いたい場合もあります。

今回は、PHPでミリ秒を扱うために以下の内容のお話をします。

【解説】PHPの時間とは
【基本】microtime関数でミリ秒を使う
【応用】ミリ秒が必要な時

PHPでの時間について

まずミリ秒の解説をする前に、PHPの中で使う時間はどのように表現されるか解説します。

タイムスタンプ

以下のような日付があったとします。

2018/1/1 10:55:05

しかしPHPの内部では以下のように認識されています。

1514771705

これは、西暦や日付や時間を秒に変換した数値です。

この数値をタイムスタンプと呼びます。

少し詳しい話をすると、【1970年1月1日 00:00:00 GMT】からその時間まで何秒経っているかを表します。

date関数と書式変換

続いて、日付を扱う時のdate関数についてお話します。

//第一引数だけの場合
echo date("Y/m/d H:i:s");

上記のように書くと以下のような結果になります。

2018/1/1 10:55:05


date関数の第一引数に出力したい書式を指定します。

そうすると現在の時間の結果が出力されます。

//第二引数まで指定した場合
echo date("Y/m/d H:i:s", 1514771705);

上記のように書くと以下のような結果になります。

2018/1/1 10:55:05


第一引数に書式、第二引数にはタイムスタンプを入力します。

そうすると、そのタイムスタンプを指定した書式で出力してくれます。

date関数についてもっと詳しく知りたい場合は以下を参考にしてください。

現役PHPプログラマが伝授!date関数で日時を自由に扱おう
更新日 : 2019年4月11日

microtime関数について

続いて、タイムスタンプを扱うための関数microtimeについてです。

echo strtotime("2018/1/1 10:55:05");

上記のように書くと以下のような結果になります。

1514771705

date関数の第一引数に年月日を指定します。

そうすると指定した年月日のタイムスタンプが出力されます。

このようにして前章で説明したタイムスタンプを取得する事ができます。

PHPの時間の扱いについては理解して頂けましたでしょうか。

それでは、いよいよ次章からミリ秒について解説します。

ミリ秒変換を行ってみよう

ミリ秒の変換についてはmicrotime関数を使用します。

使い方は簡単で、以下のように使います。

echo microtime();
結果
0.64878500 1540722712

microtime関数は、現在の時刻をマイクロタイム秒までタイムスタンプで返します。

半角で区切って、左側がマイクロ秒で右側がタイムスタンプです。

また、microtimeはあくまでも現在の時間の測定です。

過去のタイムスタンプをミリ秒変換する事はできませんので注意です。

なぜならば、タイムスタンプは秒単位であるからです。

実行時間の計測

microtimeでミリ秒の取得がわかりましたが、実際どのように使用するのでしょうか。

特に、処理毎の実行時間測定などに使います。

パフォーマンス改善に有効です。

実際以下のようにコードに仕込んで使用します。

<?php
$start_time = explode('.',microtime(true));

// 計測したい処理

$end_time = explode('.',microtime(true));

echo $end_time[0] - $start_time[0];

計測したい処理の前に、microtimeを実行して計算しやすい形に分割します。

処理の後にまた計測して、最後に引き算をするとかかった時間が分かるという仕組みです。

簡単に測定できますので、是非覚えておいて頂きたいです。

ミリ秒単位のsleep

最後に、ミリ秒単位でsleepを入れる方法を説明します。

sleepというのはプログラムを一時的に停止させる関数です。

sleepでは最小1秒しか設定できません。

それ以上小さい数値を設定するにはusleepを使用します。

0.3秒スリープさせるには以下のように記述します。

usleep(300000);


簡単ですが、これも是非覚えておいてください。

まとめ

今回はPHPのミリ秒について解説しました。

ミリ秒を理解するためには、PHPでの時間の扱いも理解する必要があります。

しっかり覚えておいて頂きたいです。

それでは、また。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

つぶらや

つぶらや

独学PG&SE、東京在住30代女性。
誰でもプログラマーになれるがモットーで、わかりやすい記事を目指しています。

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー