09. 07. 2012, 11:45

Hallo,

ich habe jetzt einige Zeit schon Probleme damit bei meinen Frontend-Benutzern korrekte Geburtstagslisten auszulesen (welche Person hat heute/morgen Geburtstag) und habe jetzt einen Fehler gefunden der mich etwas stutzig macht:

Ich gebe im Profil bearbeiten bei der sr_feuser_register 24.3.1980 als Datum ein - im Backend wird korrekt der 24.3.1980 angezeigt. Der gespeicherte Timestamp ist 322700400 - dieser Timestamp umgerechnet in UTC/GMT ist aber der 23.3.1980 - in dem Fall funktioniert aber trotzdem noch alles.

Wenn ich jetzt aber einen negativen Timestamp erzeuge indem ich das Datum vor den 1.1.1970 setze also auf 24.3.1969 dann zeigt er mir im Backend wenn ich den Benutzer bearbeite auf einmal den 23.3.1969 an - also ein falsches Datum. Der Timestamp ist -24454800 und Lokalzeit der 24.3.1969 - GMT aber wieder der 23.3.1996 - im Backend wird mir jetzt aber auch das falsche Datum angezeigt nämlich der 23.3.1996.

Wenn ich im Backend ein Geburtsdatum eingebe, dann funktioniert alles - dann ist GMT und Lokalzeit auch identische egal ob das Datum vor oder nach dem 1.1.1970 liegt.

Mysql Abfragen nach Geburtsdatum Tag/Monat funktionieren dadurch auch hinten und vorne nicht und ich denke mir "wtf typo3" ...

Bin gerade ein bisschen ratlos wie ich das lösen kann - vor allem habe ich einige 100 Benutzer bei denen das Geburtsdatum vor dem 1.1.1970 liegt und wo sämtliche Geburtstagsabfragen deswegen nicht korrekt funktionieren... woran kann das liegen, dass die sr_feuser_register das falsch speichert?

Liebe Grüße
Matthias

p.s. Es ist überhaupt ein totaler krampf das TYPO3 das Geburtsdatum einer Person als Timestamp speichert - gibt es eine Möglichkeit das auf ein richtiges MYSQL Date Field zu ändern?