Zeitstempel mit Mikrosekunden

Hallo Leute,

in einem Datenstrom kommen Zeitangaben in dieser Form:
2020/05/05
06:44:07.460
in zwei Datenfeldern.
Mit

$Timestamp = strtotime($SBS1Date[6]." ".$SBS1Date[7]);

bekomme ich einen korrekten UNIX-Zeitstempel, aber die Mikrosekunden gehen verloren.
Wie bekomme ich die mit in den Zeitstempel?

Joachim

Die wenigsten Funktionen in PHP können mit Millisekunden Präzision arbeiten. Evtl. kannst du von hier aus durch die Doku wühlen, welche Funktionen es können: PHP: microtime - Manual

paresy

Hallo Joachim,

wenn es immer 3 Nachkommastellen sind, sollte es so funktionieren:

$Timestamp = strtotime($SBS1Date[6]." ".$SBS1Date[7]) + (float)substr($SBS1Date[7], -4);

Attain

Hallo Leute,

Google hatte ich selbstverständlich als erstes bemüht…:wink:

Ich versuche es jetzt dann mal so:

$TimeParts = explode(".", $SBS1Date[7]);
$Microseconds = intval($TimeParts[1] ) / 1000;
$Timestamp = strtotime($SBS1Date[6]." ".$SBS1Date[7]);
$Timestamp = intval($Timestamp) + $Microseconds;

Ist ja nicht wirklich „schön“, aber gibt ja offenbar keine andere Möglichkeit…

Vielen Dank!

Joachim

Hi,

hatte das eben gerade auch (Auswertung kurzer/langer Tastendruck von nem HM-Schließerkontakt). Ich arbeite mit microtime als Float, dann kann man gut damit rechnen. Aber hängt natürlich davon ab, was Du machen willst.

Gruß
dfhome

…brauche es, um eine zeitliche Differenz zu berechnen, von daher ist float völlig ausreichend.
„Spiele“ aktuell etwas mit dem Dump1090-Datenstrom (der wird erzeugt, wenn von Flugzeuge erzeugte Daten über ein DVB-T-Empfänger von einem Raspberry Pi empfangen werden).
Die Zeitstempel dort sind eben auch mit Mikrosekunden.

Joachim