Am 10.03.15 um 19:06 schrieb Harald Stanzel:
Hallo zurück,

laut de2.php.net/manual/de/intro.datetime.php hat DateTime 64 Bit. Mir
würden schon 32 reichen, wenn nicht über die Hälfte davon für die
Sekunden eines einzigen Tages drauf gehen würden.
Ich hab hier drei Dinge:
PHP, Mysql und dazwischen Extbase. Wie ich bisher verstanden habe,
kennen PHP und Mysql 64Bit lange Datetime.

Problem 1: int(11) ist mit Sicherheit zu klein, Maximalwert 2^31 - den
hat mir der Ext.Builder gemacht.
Allein die Angabe von int(20), welcher dann +/- 2^63 könnte,
funktioniert aber nicht.
Denn der Wertebereich bleibt der selbe.

Problem 2: Ändere ich diesen int(11) auf Date oder DateTime funktioniert
gar nichts mehr (NULL-Value in beide Richtungen,d.h. phpmyadmin zeigt
0000-00-00 und mein FE zeigt 1.1.1970)

Deswegen schlussfolgere ich, daß beim Property mappen oder sonstwo in
den Untiefen von Extbase IMMER ein timestamp aus dem Datum generiert
wird. Und bei diesem ist bekannt, daß am 19.1.2038 das Ende erreicht wird.

Problem 3: Ich habe nicht die leiseste Ahnung, wo und nach was ich noch
suchen sollte.
solange du bei der Repräsentation von Datumsangaben durch Integer als Unixtime (= Sekunden seit 1.1.1970 0:00:00) bleibst wirst du Probleme haben.
Probleme rund um diese Datumsrepräsentation:
1. Zeitzonen, da die Uhrzeit mit genutzt wird müssen Zeitzonen berücksichtigt werden. da man bei einem reinen Datum meist die Uhrzeit 0:00 nimmt kann es bei einer Zeitzonen'korrektur' auf einmal zu 23:00 des Vortages werden: Ohne angezeigte Uhrzeit auf einmal ein anderes Datum 2. es ist ja nicht nur PHP beteiligt. neben der Datenbank, die hoffentlich nur eine große Integer Zahl sieht gibt es ja auch noch Javascript, das zumindest bei der Eingabe noch beteiligt ist, sei es für einen Kalender-Wizard, sei es nur zur Wert-Überprüfung. D.h. aber auch Javascript von ganz unterschiedlichen Browsern, und da unterscheidet sich IE8 von IE11 und FF unter Windows von FF unter Linux

solltest du auf eine echte Datumsrepräsentation umsteigen (die Datenbanken haben einen eigenen Datentyp dafür!) kommen aber schnell andere Probleme auf: Die Eingabe wird kompliziert weil man jetzt drei Felder zusammen validieren muss (oder ein Feld erstmal zerlegen und dann wieder kombinieren muss) Berechnungen bzgl. Tagesdifferenz zwischen zwei Daten (pl. Datum) werden um einiges komplizierter. Das ist in so weit für dich so aufwändig weil TYPO3 noch kein sauberes Interface für diesen DB-Datentyp hat.

andere Auswege: eine komplett eigene Datumsverwaltung mit einem Datentyp, der eigentlich ein String ist: speichere ein Datum einfach als String "YYYY:MM:DD" mit einer einfachen Validierung und einfacher Anzeigeformatierung. Du kannst damit halt nur nicht viel 'rechnen'. (Bei dieser Formatierung funktioniert immerhin ein kleiner/größer Vergleich)

bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an