I have a script which runs in a ‘while‘ cycle. I need to determine for how long the script was running for and if it is over 10 seconds terminate it. The code I wrote returns weird decimal values (one second it might be ‘5.342…’ and other it might be ‘903.322…’).
Can someone tell me how can I achieve that?
$timer = microtime(false);
while(/*...*/)
{
$currTime = microtime(false);
$timeDiff = $currTime - $timer;
$timeDiff *= 1000;
if ($timeDiff > 10)
{
//...
}
}
You’re tracking microseconds. If you want to see only the seconds, round it
up using
round()orceil().You might also consider
set_time_limit(), which controls how long the script is allowed to run for.You can use
register_shutdown_function()to handle any cleanup that is necessary if the script didn’t finish in time.