php get microtime aus Datums-string
Ich versuche, die vergangene Zeit zwischen zwei datetime strings (einschließlich Millisekunden)
Beispiel:
$pageTime = strtotime("2012-04-23T16:08:14.9-05:00");
$rowTime = strtotime("2012-04-23T16:08:16.1-05:00");
$timePassed = $rowTime - $pageTime;
echo $timePassed . "<br/><br/>";
Was ich sehen will echo "1.2", aber strtotime()
ignoriert den Millisekunde Teil der Zeichenfolge. Auch, scheinbar microtime()
lässt Sie nicht geben Sie ihm einen datestring... gibt es eine alternative Funktion für die Berechnung dieser, oder bin ich zu tun haben einige string-Analyse zu extrahieren, werden die Sekunden und Millisekunden und subtrahieren?
InformationsquelleAutor der Frage slinkhi | 2012-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit DateTime statt.
Braucht dies ein bisschen ein workaround, weil
DateInterval
(die zurückgegeben wirdDateTime::diff()
) nicht in die Berechnung der Mikrosekunden, so müssen Sie diese von handEmpfehle ich immer
DateTime
wegen seiner Flexibilität, die Sie in Aussehen sollte esBEARBEITEN
Für die rückwärts Kompatibilität zu PHP 5.2 braucht es den gleichen Ansatz wie für die Millisekunden:
InformationsquelleAutor der Antwort Dan Lee
Gebäude an Dan Lee ' s Antwort, hier ist eine universell funktionierende Lösung:
Vollständige Erklärungen:
$uDiff
und konvertieren Sie das Ergebnis in Sekunden geteilt durch 1000 * 1000$uDiff
ist wichtig und hat die gleichen sein wie in der $timePassed Betrieb.DateTime::getTimestamp()
wird eine richtige Antwort geben, auch wenn die Differenz größer ist als 60 SekundenInformationsquelleAutor der Antwort Hypolite Petovan