[TYPO3-german] Re: wie handelt Extbase das Y2K38-Problem?
okay... PHP_INT_MAX ist 2147483647 = 2^31-1 PHP Version 5.3.8 in sql ist das dann die max_int_signed max_bigint_unsigned = 18446744073709551615 = 2^64 -1 max_bigint_signed = 9223372036854775807 = 2^63 -1 usw... Scheint, als könne mysql mit 64 Bit umgehen, aber mein PHP nicht :/ ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] wie handelt Extbase das Y2K38-Problem?
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 -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. Gruß Harald ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] wie handelt Extbase das Y2K38-Problem?
Beide Daumen hoch! :) Wer lesen kann, ist klar im Vorteil ;) Mit 'dbType' und nicht 'db_type' funktioniert's ! Vom 1.1.1000 bis 31.12. getestet. Kannst du bei der Gelegenheit bitte gleich mal prüfen, ob sowohl dein MySQL als auch dein PHP 64bit sind...? Wollte ich schon lang mal... WO find ich das denn?! Wegen "default => time()" schau ich grad mal ins BE und sehe... beim Anlegen einer neuen Person, steht der Datepicker auf 'heute'. Der ist allerdings begrenzt auf 1901-2038, d.h. er zeigt zwar an, daß er beliebieg weit hoch und runter kann (sogar in negative Jahreszahlen), übernimmt aber keine Werte außerhalb. Na, wenigstens scheint mein Problem gelöst zu sein. Da kann ich schon mal beruhigt zu Bett gehen ;) Danke, bis dann! Harald ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] wie handelt Extbase das Y2K38-Problem?
Hallo Stephan, Die Frage klingt jetzt vielleicht blöd, aber hattest du nur den Datenbankanteil umgestellt der auch dein TCA geändert? http://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Common/Index.html#dbtype Du solltest * im TCA "eval" auf "date" stellen * im TCA "dbType" auf "date" * in der ext_tables.sql das Feld auf "date" Auf deine Frage: Ich glaub, ich hatte es schonmal so ausprobiert. Soweit ich weiß, ist TCA nur fürs Backend zuständig. Weil ich meine Eingaben aber im FE mache, denk ich, tut es nichts zur Sache. Aber zur Sicherheit hab ich das grad nochmal nachgeschaut... In Configuration/TCA/Person.php steht unter columns: 'birth_date' => array( 'exclude' => 0, 'label' => 'LLL:EXT:familytree/Resources/Private/Language/locallang_db.xlf:tx_familytree_domain_model_person.birth_date', 'config' => array( 'db_type' => 'date', 'type' => 'input', 'size' => 7, 'eval' => 'date', 'checkbox' => 1, 'default' => time() ), ), In der ext_tables.sql lautet die entsprechende Stelle CREATE TABLE tx_familytree_domain_model_person ( ... birth_date date DEFAULT '-00-00' NOT NULL, ...); Und nach dem Test, was dabei passiert, stoße ich wieder auf das unter Problem2 genannte : NULL-Value in beide Richtungen,d.h. phpmyadmin zeigt -00-00 und wenn ich das dort editier, zeigt mein FE 1.1.1970 (sonst nichts) :( ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] wie handelt Extbase das Y2K38-Problem?
Hmmm... also das Format ist mir eigentlich relativ egal. Was ich brauch, ist eine diskrete eindimensionale Abbildung der Zeit. Ich brauch das nicht vierdimensional, ich brauch keine Zeit abhängig vom Ort. Für meinen Geburtstag spielt es keine Rolle, ob ich in Los Angeles, in Peking oder auf dem Mars geboren wurde. Die Uhrzeit würde ich - wenn überhaupt - als schmückendes Beiwerk, wie den Geburtsort betrachten. Ich brauch eigentlich nur "Date". Ob mein Datum in der Form 1425992664 oder 2015-03-11 gespeichert wird, ist mir so lang wie hoch. Ich hab auch kein Problem, die Uhrzeit einfach zu ignorieren, wenn sie meint, trotzdem dabei sein zu wollen. Ich versuch, meine Probleme neu zu formulieren: 1. Der Wertebereich von 1901-2038 ist mir zu klein. Das trifft zu für +/- 2^31 ... signed int(11) 2. Verwende ich andere Typen (mysql-seitig getestet, php-seitig den DateTime belassen) tut gar nichts mehr. (*) Und weiter: Es erscheint mir logisch, daß es komplizierter wird, je mehr Technologien ich verwende. Deswegen hab ich es bisher so einfach wie möglich gehalten. Ich verwende (noch) kein Javascript. Javascript kommt erst, wenn alles andere tut. (*)"solltest du auf eine echte Datumsrepräsentation umsteigen (die Datenbanken haben einen eigenen Datentyp dafür!) kommen aber schnell andere Probleme auf" ..und zwar, daß dann gar nichts mehr tut. Die PHP-Seite weiß dann noch lange nicht, wie sie korrekt mit Mysql kommunizieren soll. Das Problem ist (laut meiner Erkenntnis), daß da immer ein timestamp erwartet wird. Ich habe Datetime ausprobiert. PHP-seitig ist das (z.B. "2015-03-11") aber dann immer gleich null (=0 ="1.1.1970") Je länger ich über dieses Problem grüble, umso vernünftiger scheint mir die Realisierung als String. Ich dachte nur, das runde Rad sei schon erfunden und ich müsste nicht mit meinem N-Eck fahren (bildlich gesprochen). Gruß Harald ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] wie handelt Extbase das Y2K38-Problem?
Hallo wertes Forum und Mitglieder, ich habe mit dem ExtensionBuilder eine kleine Extension gekickstartet, in der Personendaten und Familienverhältnisse abgespeichert werden mit dem Ziel Stammbäume darzustellen. Eine Person hat außer Vor-, Zu- und sonstige Namen noch einen Geburtstag und (eventuell, früher oder später) einen Todestag. Im Ext.Builder habe ich dafür "Date" gewählt. Im Model erhalte ich damit DateTime und die entsprechende DB-Spalte wird zu int(11) DEFAULT '0' NOT NULL Das funktioniert auch soweit - solange ich im Bereich 1901-2038 bleibe. Gebe ich im FE ein Datum drüber oder drunter ein, wird das Maximum, bzw. Minimum abgespeichert. Nun möchte ich gern wissen, ob und wie Extbase mit Datumsangaben vor 1901 / nach 2038 umgeht oder wie ich das deichseln kann, damit es tut. Leider hat meine bisherige Suche nur ergeben, daß das Problem mehr oder weniger bekannt ist. (Nochmal) leider hab ich bisher keine Lösung dazu gefunden. Gruß Harald ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german