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
Gast
#4571865
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.
Gast
#4571890
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.
Gast
#4571910
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......
Gast
#4571911
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.
Gast
#4571924
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
Gast
#4572047
10 picosekunden timestamp, ven 15 lug 2011, 12.41.39, CEST
Gast
#4572070
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?
Gast
#4572144
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......
Gast
#4572223
FILETIME
Gast
#4572233
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 ;-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.