In PHP werden die meisten Zeitformate in UNIX-Zeitstempeln ausgedrückt, und UNIX-Zeitstempel basieren auf s (Sekunden) als kleinster Zeitmaßeinheit. Dies ist für einige Anwendungen nicht präzise genug, daher kann microtime() aufgerufen werden, um den aktuellen UNIX-Zeitstempel und die Anzahl der Mikrosekunden zurückzugeben. Der Prototyp dieser Funktion lautet wie folgt:
Mixed Microtime([bool get_as_float]); //Gibt den aktuellen UNIX-Zeitstempel und die Mikrosekunde zurück
Sie können dieser Funktion einen optionalen booleschen Parameter bereitstellen. Wenn dieser Parameter beim Aufruf nicht angegeben wird, gibt diese Funktion eine Zeichenfolge im Format „msec sec“ zurück. Dabei ist „sec“ die Anzahl der Sekunden seit der UNIX-Epoche und „msec“ der Mikroteil. Beide Teile der Zeichenfolge werden in Sekunden zurückgegeben. Wenn das Argument get_as_float angegeben ist und sein Wert TRUE entspricht, gibt microtime() eine Gleitkommazahl zurück. Vor dem Dezimalpunkt wird er immer noch im Zeitstempelformat ausgedrückt, während er nach dem Dezimalpunkt den subtilen Wert darstellt. Allerdings ist zu beachten, dass der Parameter get_as_float in der PHP5.0-Version neu hinzugefügt wurde, sodass dieser Parameter in Versionen vor PHP5 nicht zum direkten Anfordern einer Gleitkommazahl verwendet werden kann. Im folgenden Beispiel wird die zum Ausführen eines PHP-Skripts erforderliche Zeit durch zweimaligen Aufruf der Funktion microtime() berechnet. Der Code sieht so aus:
// Eine Klasse erstellen, die die Skriptlaufzeit berechnet
Klassen-Timer{
private $startTime = 0; //Speichern Sie die Zeit, zu der die Ausführung des Skripts beginnt (in Mikrosekunden gespeichert)
private $stopTime = 0; //Speichern Sie die Zeit, wenn die Ausführung des Skripts endet (speichern Sie in Mikrosekunden)
//Aufruf am Anfang des Skripts, um den Mikrosekundenwert der Skriptstartzeit
zu erhalten
Funktion start(){
$this->startTime = microtime(true); //Weisen Sie die erhaltene Zeit dem Mitgliedsattribut $startTime
zu
}
//Am Ende des Skripts den Mikrosekundenwert der Skriptendzeit
verwenden
Funktion stop(){
$this->stopTime = microtime(true); //Weisen Sie die erhaltene Zeit dem Mitgliedsattribut $stopTime
zu
}
//Den Unterschied zwischen den beiden Erfassungszeiten im selben Skript zurückgeben
Funktion ausgegeben(){
//Nach der Berechnung runden Sie 4 auf 5, behalten Sie 4 Ziffern bei und geben Sie
zurück
return Round(($this->stopTime-$this->startTime),4);
}
}
$timer= new Timer();
$timer->start(); //Rufen Sie diese Methode auf, wenn die Ausführung der Skriptdatei beginnt
usleep(1000); //Themeninhalt des Skripts, hier können Sie als Beispiel eine Millisekunde lang schlafen
$timer->stop(); //Rufen Sie diese Methode am Ende der Skriptdatei auf
echo „Es hat gedauert“.$timer->spent().““;
?>
Deklarieren Sie im obigen Skript eine Timer-Klasse, die zur Berechnung der Skriptausführungszeit verwendet wird. Sie müssen die Methode start() in dieser Klasse zu Beginn der Skriptausführung aufrufen, um den Zeitpunkt zu ermitteln, zu dem die Ausführung des Skripts beginnt. Und rufen Sie die stop()-Methode in dieser Klasse am Ende der Skriptausführung auf, um den Zeitpunkt zu ermitteln, zu dem das Skript endet. Durch Zugriff auf die spend()-Methode in dieser Klasse können Sie dann die zum Ausführen des Skripts erforderliche Zeit ermitteln.