Hallo Leute,
ich versuche nun schon seit Tagen nachzuvollziehen, wie ein Datum, welches ich über einen Datepicker im Backend auswähle umgewandelt wird und schliesslich in der Datenbank landet.
Meine bisherigen Erkenntnisse:
- Alle Backend-Datumseingaben über den Datepicker nach 1.1.1970 (!) werden als Timestamp in der Zeitzone des Servers unter Berücksichtigung der Sommer/Winterzeit in der Datenbank abgelegt.
Der Javascript Datepicker selbst generiert immer den Timestamp nach UTC und legt diesen zunächst in einem hidden Field ab. TYPO3 wandelt diesen Wert dann scheinbar beim Abspeichern noch einmal um.
- Bei Datumseingaben vor 1.1.1970 wird beim Abspeichern weder Sommer/Winterzeit, noch die Zeitzone berücksichtigt.
- PHP und somit auch der strftime Befehl von Typoscript beziehen beim Umwandeln von Timestamps nach z.B. ISO8601 die Zeitzone des Servers mit ein.
- Im TYPO3 Backend ist es nicht möglich mit dem Datepicker den 1.1.1970 auszuwählen.
Aktuell habe ich das Problem, wenn ich ein so eingegebenes Datum direkt aus der Datenbank als Timestamp auslese (ohne irgendwelche API Befehle zur Konvertierung) und über ein Plugin im Frontend ausgebe und dort über einen Javascript-Befehl in ein Datum umwandle, wird dort nahezu immer ein falsches Datum bzw. Uhrzeit angezeigt.
Das Problem is einerseits, das die Daten beim Abspeichern in TYPO3 mit einem mir nicht nachvollziehbaren Offset versehen werden, welcher beim Auslesen zum dem Fehler führt.
Die Frage ist nun, ob es eine Möglichkeit gibt einen solchen "TYPO3"-Timestamp wieder in einen "richtigen" Timestamp umzuwandeln.
Irgendwo hab ich mal gelesen, man sollte hierfür einen stdWrap nutzen.
Wie könnte so etwas denn aussehen?
Oder hat jemand noch eine ganz andere Lösung/Idee wie man das Problem in den Griff kriegen kann?
Bitte Helfen - ich dreh sonst noch durch 😢