Die GetTimeOfday -Funktion gibt die Zeitinformationen der Mikrosekunde -Ebene der aktuellen Zeit zurück, einschließlich zwei Teile: Sekunden und Mikrosekunden. Es gibt ein assoziatives Array mit der folgenden Struktur zurück:
array(
"sec" => Anzahl der Sekunden,
"usec" => 微Anzahl der Sekunden,
"minuteswest" => Aktuelle Zeitzone undUTCZeitunterschied,
"dsttime" => Sommerzeitzeichen für Tageslicht
)
Bei der Berechnung des Zeitunterschieds konzentrieren wir uns hauptsächlich auf die beiden Werte von SEC und USEC .
Die Idee ist:
Rufen Sie GetTimeofday (True) zu zwei Punkten an, um den Zeitstempel zu erhalten (diesmal gibt die schwimmende Punktzahl, Sekunden + Mikrosekundengenauigkeit zurück).
Subtrahieren Sie die Startzeit, indem Sie die Startzeit subtrahieren, um den genauen Unterschied in Sekunden zu erhalten, wodurch der Mikrosekundenspiegel nach dem Dezimalpunkt unterstützt wird.
<?php
// Holen Sie sich die Startzeit
$start = gettimeofday(true);
// Simulation zeitaufwändiger Betrieb
usleep(500000); // 500Millisekunde
// Holen Sie sich die Endzeit
$end = gettimeofday(true);
// Berechnen Sie den Zeitunterschied,Einheiten in Sekunden,Unterstützt Mikrosekunden
$elapsed = $end - $start;
echo "Ausführungszeit:{$elapsed} Zweite\n";
?>
Dieser Code gibt etwa 0,5 Sekunden aus, da wir Usleep (500000) verwendet haben, um eine halbe Sekunde Verzögerung zu simulieren.
Zusätzlich zum Zeitpunkt der Rückgabe von Zeitpunkten von Timeofday (True) können Sie auch GetTimeOfday () zurückgeben und die Hinzufügung von Sekunden und Mikrosekunden selbst berechnen:
<?php
// Holen Sie sich die Startzeit,Array -Formular
$start = gettimeofday();
// Simulation zeitaufwändiger Betrieb
usleep(200000); // 200Millisekunde
// Holen Sie sich die Endzeit
$end = gettimeofday();
// Berechnen Sie den Zeitunterschied(Zweite + 微Zweite)
$elapsed = ($end['sec'] - $start['sec']) + ($end['usec'] - $start['usec']) / 1000000;
echo "Ausführungszeit:{$elapsed} Zweite\n";
?>
Diese Methode eignet sich für eine flexiblere Verarbeitung von Zeitstempeln.
Wenn Sie die Antwortzeit einer HTTP -Anfrage berechnen müssen, können Sie Curl und GetTimeOfday kombinieren:
<?php
// fragenURL(verwendengitbox.netAls Domain -Name)
$url = "https://gitbox.net/api/example";
// Initialisierungcurl
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Notieren Sie die Startzeit
$start = gettimeofday(true);
// 执行fragen
$response = curl_exec($ch);
// Notieren Sie die Endzeit
$end = gettimeofday(true);
// Schließungcurl
curl_close($ch);
// Berechnung zeitaufwändig
$elapsed = $end - $start;
echo "fragen {$url} zeitaufwendig:{$elapsed} Zweite\n";
?>
Dadurch wird der genaue zeitaufwändige Prozess des Aufrufens der Gitbox.net- Schnittstelle erhalten.
GetTimeOfday (True) gibt die schwimmende Punktdarstellung der aktuellen Zeit, Sekunden + Mikrosekunden zurück, die einfach zu bedienen sind.
Durch die Berechnung der Differenz zwischen zwei Zeitpunkten kann er auf die Mikrosekundenebene genau sein.
Geeignet für Leistungstests, Code-Ausführungszeitstatistiken und Anfragen zeitaufwändiger Analysen.
Wenn Sie GetTimeOfday gut verwenden, ist Ihre PHP -Zeitberechnung genauer und effizienter.