Cette fonction présente aussi la particularité de retourner le timestamp sous la forme d'une chaîne ainsi formatée : "msec sec". Pour obtenir une conversion en un nombre flottant (à virgule) on utilisera la fonction suivante (proposée du php.net) :

function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

A noter que depuis PHP 5, un nouveau paramètre optionnel a été ajouté à la fonction microtime(), il s'agit de get_as_float et qui vaut false par défaut. Si vous passez ce paramètre avec pour valeur true, la fonction microtime(true) retourne directement un nombre flottant. La fonction présentée juste avant n'est donc plus utile. Pour traiter le cas générale, je m'en tiendrez à la version avec microtime_float() qui marche dans tous les cas.

Nous allons donc déclarer une seconde fonction running_time() qui retourne la durée d'exécution du script en millisecondes. Cette fonction doit être appelée une première fois en tout début de script pour son initialisation, elle renverra 0 à cet instant.

function running_time() {
    static $time = false;
    if($time === false )
    {
        $time = microtime_float();
        return 0;
    }
    else
        return round((microtime_float()-$time) * 1000, 3);
}

Notez que le calcule de la durée d'exécution d'un script n'est toujours qu'une approximation puisque le calcul lui même allonge cette durée. Par ailleurs elle dépend également de la charge que doit supporter le système au moment de l'exécution. Pour vous en convaincre, je vous propose un petite démonstration ou vous verrez que la durée varie à chaque rafraîchissement.