Hallo, ich schreibe aktuell ein kleines php Skript, welches Daten aus eine Datenbank auslesen und anzeigen soll. Leider werde ich aus der Information, die in der Spalte mit dem Zeitstempel hinterlegt sind nicht schlau. Als Zeitstempel ist z.B. folgende Zahl: 131072649970520000 als Integer hinterlegt und beinhaltet das aktuelle Datum und die Uhrzeit. Erkennt jemand das Zahlenformat? Für ein Unix Zeitstempel ist die Zahl zu lang (>2038). Bei der Datenbank handelt es sich um eine von Codesys 3.5 (SPS) erstellte SQLite Datenbank. Diese beinhaltet Alarmmeldungen mit Zeitstempel. MfG pindrei
Pindrei P. schrieb: > Erkennt jemand das Zahlenformat? schau doch einfach mal wie der Zeitstempel nach 1 stunde bzw. 1 Minute sich ändert. Dann sollte es recht klar sein was es ist.
Pindrei P. schrieb: > 131072649970520000 Mach doch mal so viele Stellen weg, dass es was sinnvolles wird. 13XXXX ist IMHO so Mitte 2012 - 2014 gewesen als Timestamp. Die restlichen Stellen sind halt dann noch paar "zerquetschte" Sekunden.
SR schrieb: > Mach doch mal so viele Stellen weg, dass es was sinnvolles wird. 13XXXX > ist IMHO so Mitte 2012 - 2014 gewesen als Timestamp. > Die restlichen Stellen sind halt dann noch paar "zerquetschte" Sekunden. Mmh, das habe ich schon versucht. Ich habe es auch schon mit einen Faktor versucht. Leider ohne Erfolg. Ich habe dir Zeit beobachtet, die 70 änderte ich im Sekundentakt. Jedoch komme ich da nicht weiter. Vermutlich ist es ein SPS Datentyp, der aus zwei Datentypen zusammengesetzt ist......
Pindrei schrieb: > Mmh, das habe ich schon versucht. Ich habe es auch schon mit einen > Faktor versucht. Leider ohne Erfolg. Ich habe dir Zeit beobachtet, die > 70 änderte ich im Sekundentakt. Jedoch komme ich da nicht weiter. > Vermutlich ist es ein SPS Datentyp, der aus zwei Datentypen > zusammengesetzt ist...... dann mache uns mal ein Tabelle wo du mehre Beispiele zeigst. Jeweils die echte Zeit zu dem Wert.
Welches Datum ist denn o.g. Beispiel?
Schreibe doch einfach mal zwei Datensätze mit einem definierten Zeitstempel, z.B. 01.01.2016T00:00:00.000 und 02.01.2016T00:00:00.000, schaue in der DB nach, welche Integerwerte dort hinterlegt sind, bilde deren Differenz und prüft, ob das Ergebnis in ein Format Sekunden/Millisekunden/Microsekunden/... pro Tag passt. Diese Formate sind eigentlich recht gängig. Grüße Markus
10 picosekunden timestamp, ven 15 lug 2011, 12.41.39, CEST
Eher sind es unix time, millisekunden, CPU/PROZESS-ID
Pindrei P. schrieb: > Bei der Datenbank handelt es sich um eine von Codesys 3.5 (SPS) > erstellte SQLite Datenbank. Diese beinhaltet Alarmmeldungen mit > Zeitstempel. Ich gehe mal stark davon aus dass bereits Code existiert, der diese Werte aus der Datenbank ausliest. Ansonsten wären diese Daten "write only" und somit auch recht nutzlos ;-) Wie rechnet denn der vorhandene Code die Werte um?
:
Bearbeitet durch User
Gute Frage, da gibt es keine Informationen drüber. Der Zeitstempel war von heute zum Zeitpunkt meiner Fragestellung. Ich werde morgen mal eine Tabelle abfertigen. Mittlerweile vermute ich das ich den Wert teilen muss und die Informationen getrennt sind......
Wurfbrot schrieb: > FILETIME Ui, das sieht gut aus. http://www.silisoftware.com/tools/date.php Ich werde es morgen direkt testen und dann hoffen, dass es dafür eine php Funktion gibt. Auf 100er nanosekunden seit 1601 wäre ich nicht gekommen. Eventuell findet ja ein Archäologe irgend wann solch eine alte Datei....
Ja FILETIME passt. Die Umrechnung lautet: $zeit = floatval($FILETIME]); $zeit = $zeit / 10000000.00 - 11644473600.00; echo date("Y-m-d H:i:s",$zeit) ; ....natürlich bin ich zuerst in die 32/64bit Falle getappt ;-)
Pindrei P. schrieb: > Ja FILETIME passt. Die Umrechnung lautet: > > $zeit = floatval($FILETIME]); > $zeit = $zeit / 10000000.00 - 11644473600.00; > echo date("Y-m-d H:i:s",$zeit) ; Übrigens darf man auch in PHP den Konstanten einen Namen geben. Sonst weiß später keine Sau mehr, wie man gerade auf diese Werte gekommen ist ;-)
Mark B. schrieb: > Übrigens darf man auch in PHP den Konstanten einen Namen geben. Sonst > weiß später keine Sau mehr, wie man gerade auf diese Werte gekommen ist > ;-) OK da muss ich dir recht geben, noch sinnvoller wäre eine Funktion zur Umrechnung ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.