PHP

【PHP】ミリ秒を取得することで制限時間を設けて処理をする

更新日:

スポンサードリンク

PHPで時間制限を設けてタイマーのような処理をするときの制限の付け方として、処理のはじめの時刻と処理の途中の時刻の差分をとって閾値以上であればやめるというものを考えます。

時間の取得は色々あると思いますが細かい指定のできそうなミリ秒を取得したいなと思いますが、しかし、PHPでは直接ミリ秒の取得ができないようなので一度microtimeを使って取得します。
microtimeは現在のUnixタイムスタンプをマイクロ秒で取得することができるのですが、1000倍することでミリ秒になります。

$start = microtime(true) * 1000;
$limit_time = 25000;   //25秒過ぎたらやめる
while(/*何かの条件*/){
/*
* 何かの処理
*/
$now = microtime(true) * 1000;
$difftime = $now - $start;
if($difftime>$limit_time){
echo "時間切れ<br />";
break;
}
}

雑ですがこれでもちゃんと動くのでわるいものではないと思います。

microtime
スポンサードリンク

-PHP

Copyright© めめんと , 2019 All Rights Reserved Powered by AFFINGER5.