He creado una simple funcion para mostrar lapsos de tiempo, la cosa es que al principio no funcionaba pues me retornaba el mismo indice (creado con uniqid) en cada invocacion, asi que tuve que agregar un retraso de 1 millonesima de segundo para que funcionara, pero no entiendo porque sin eso no funciona.
La funcion es la siguiente:
Código PHP:
function lapso($idx = false){
static $lapsos = array();
// si le quito esto no funciona correctamente
usleep(1);
if($idx === false){
$idx = uniqid(time());
$lapsos[$idx] = microtime();
return $idx;
}
if(isset($lapsos[$idx])){
list($ini_m, $ini_s) = explode(' ', $lapsos[$idx]);
$ini = (float)$ini_s + (float)$ini_m;
list($fin_m, $fin_s) = explode(' ', microtime());
$fin = (float)$fin_s + (float)$fin_m;
unset($lapsos[$idx]);
return $fin - $ini;
}
return 0;
}
Código PHP:
$lps1 = lapso();
$lps2 = lapso();
sleep(1);
echo 'Lapso 1: ', lapso($lps1), '<br />';
sleep(1);
echo 'Lapso 2: ', lapso($lps2), '<br />';