Es kann weniger Ziffern drucken, da es sich um einen Gleitkommawert handelt. Also, wenn Sie 1234.0005
bekommen, bedeutet das `.0005 tatsächlich 500 Mikrosekunden. Die Nullen nach den 5 sind verloren, weil es immer noch ein unformatierter Float-Wert ist. Die Funktion microtime
basiert auf dem Systemaufruf gettimeofday()
, der ebenfalls nicht auf die Mikrosekunde genau ist. Üblicherweise ist es auf 10 Mikrosekunden genau. Siehe auch Linux - Is gettimeofday() guaranteed to be of microsecond resolution.
-edit- Ich sehe die Spezifikationen haben sich von Mikrosekunden zu Millisekunden geändert.
Um den Gleitkommawert als Ganzzahl zu erhalten, können Sie mit einem Wert multiplizieren. Der Gleitkommawert repräsentiert Sekunden. Multiplizieren Sie mit 1000, um Millisekunden oder 1.000.000 zu erhalten, um Mikrosekunden zu erhalten. Da die Spezifikationen (jetzt) Millisekunden angeben, sollten Sie mit 1000 multiplizieren. 10k gibt Ihnen eine Genauigkeit von 1/10ms = 100μs. Eine Millisekunde ist ein Tausendstel einer Sekunde. Eine Mikrosekunde ist ein Millionstel Sekunden.
Lange Rede kurzer Sinn, die Zeit in ganzzahligen Millisekunden zu erhalten, verwenden Sie diese:
$milliseconds = round(microtime(true) * 1000);
Hinweis: es gibt einen Grund, warum Sie die Zeit als String oder einem Schwimmer standardmäßig erhalten. Der Grund dafür ist, dass die Ganzzahl von PHP bei 32-Bit-Systemen ebenfalls 32 Bit groß ist und nicht groß genug ist, um den Zeitstempel einschließlich Millisekunden und Mikrosekunden zu enthalten. Diese Lösung wird also nur auf einem 64-Bit-System funktionieren.
beurteilen Sie die Zeitstempel in Millisekunden oder in Mikrosekunden benötigen? Der Titel sagt eine Sache und die eigentliche Frage –
ist es Rundungsproblem. Nachfolgende Nullen werden nicht gechattet, 'str_pad (str_replace (". "," ", Microtime (true)), 14, 0)' – splash58
@AlexAndrei: Entschuldigung, ich brauche in Millisekunden – Vishnu