Zum Inhalt springen

Datumsformat im BE ändern

Erstellt am 7. März 2007 · 7 Antworten · letzte Antwort am 10. März 2007

Tags: Frage

wwt ·

Hallo an alle!

Bei mir stellt sich im Backend das Datumsformat mit z.B.: 2-6-2006 dar.
Ein Datetime - also z.b. im News_Modul stellt sich nach klicken auf das Datumsfeld mit z.B.: 10:26 2-6-2006 dar.

Ich möchte aber die Darstellung so haben: 02.06.2006 10:26

Dies ist insbesondere deshalb wichtig, weil ich beim FE tt_news ein Datum mit Start und Endzeit gemacht habe, die den eval 'datetime' zugewiesen haben. Beim klick auf das Feld, bezieht das FE jedoch das Datums- bzw. datetime Format aus dem System/Backend mit Uhrzeit vorne und Datum hinten.

Zwar kann man im tt_news die Ausgabe eingeben mit %d%m%Y %H:%i, aber das erscheint erst nach dem speichern und ist dann auch richtig.

Wenn der Kunde aber beim ausfüllen der FE tt_news ins datumsfeld klickt, wird die datetime eben falsch dargestellt (wie oben beschrieben) und ist verwirrend.

Also, in welcher Datei/mit welchen Schnipsel, kann man das Systemdatum/ bzw. die Sytemdarstellung ändern????
Bei mir ändert sich gar nichts, wenn ich in der TCA der tt_news die "mktime" ändere. Selbst wenn ich bei datetime 'default' => '0' eingebe, wird das Datum, bzw. die datetime automatisch zugewiesen, was ja bei '0' nicht sein dürfte.

Die TCA spricht bis auf 'mktime' überall an. Das heisst, wenn ich einen anderen 'eval' zuweise (z.B.: time oder date), die Feldgrösse verändere etc. , das spricht alles an, nur auf 'default' => mktime(date('m'),date('d'),date('Y'),0,date('h'),date('i')) gibt es keinerlei Reaktionen.
Ich verstehe das nicht.

Könnt Ihr das bitte bei Euch bei einer Neuerstellung einer News in BE mal testen, welchen Datumsbezug Ihr ursprünglich habt und ob sich nach Änderung der 'mktime' in der TCA das Datum im BE verändert??

Vielen Dank.
Joe

tomila ·

Moin,

schau dir mal die Datei "t3lib/jsfunc.evalfield.js" und hier speziell die Zeilen 426 und 428 an.

viele Grüße
tomila

wwt ·

Hallo tomila!

Ja, das stimmt, hier kann man den Bindestrich gegen einen Punkt etc. tauschen.
Es geht aber auch um die Darstellung von datetime (Zeile 435). Diese wird bei mir im BE immer mit Uhrzeit und Datum dargestellt. Wenn man jedoch in der .js das Datum und die Zeit vertauscht passiert folgendes:

Im ersten Moment erscheint in einem Datetime-Feld zwar die Richtige Reihenfolge - also Datum und dann die Zeit. Hurra!! Klickt man jedoch nochmals in das Feld, etwa um die Daten manuell nochmals zu ändern, dann bezieht das Feld automatisch ein neues datetime, das offensichtlich nach einem Zufallsprinzip passiert. Nämlich bei jedem Klick ins Feld.

Es scheint, als müsste die Berechnungsreihenfolge in der jsfunc.evalfield.js zuerst mit der Zeit und dann mit dem Datum sein.

Demnach so wie original(siehe Zeile 435:

theString = this.output("time",this.getTimeSecs(theTime))+' '+this.output("date",value);

Wenn ich das Ändere auf:

this.output("date",value)+' '+this.output("time",this.getTimeSecs(theTime));

dann wird zwar datetime in der Richtigen Reihenfolge dargestellt, aber dann eben mit Problem wie oben beschrieben.

Hast Du das schon Probiert? Oder wie hast Du die datetime bei Dir eingegeben? Wenn Du nichts umgestellt hast, dann müsstest Du ja auch Uhrzeit und dann Datum haben statt Datum und Uhrzeit.

Wie kann man das also lösen?? Da muss es doch ein TS geben, in dem man dem System sagt, wie es das Datum /und/oder datetime darstellen soll.

Man kann es ja auch für die List-, Single- und Archive News machen. Hier gibt man den Value entsprechend ein (z.B.: %d-%m-&Y %H:%i). Nach dem Speichern einer News, wird das auch entsprechend dargestellt.

Offensichtlich aber, stellt Typo3 das erst nach dem Speichern dar, also nach dem rendern. Das Datum/datetime im Backend bezieht seine Daten aber offensichlich nicht vom Server wie nach dem Speichern, sondern aus dem System selbst. Und da ist der Wurm drinnen.

So sehe ich das jedenfalls. Subjektive Meinung. #paralyzed#

Denn noch etwas: selbst wenn ich in der .js beim datum die Bindestriche gegen Punkte ändere (was zwar funktioniert) so wird das Datum im BE ja einstellig dargestellt. Also muss der Datumscode ja für den Tag "e" sein, den "d" ist zweistellig. Also 01 statt 1. Das BE schreibt aber z.B.: 8:23 8-3-2006.
Daher auch hier die Frage: Wo ist diese Form der Ausgabe festgelegt??? Das muss ja irgendwo stehen.

Habe dazu auch noch 2 Dateien im Ordner t3lib gefunden, nämlich: class.t3lib_querygenerator.php (Zeilen 639-650)
class.t3lib_tceforms.php (Zeile 2474)

Aber selbst wenn ich in diesen Dateien die Reihenfolge der datetime ändere, wird sie im BE nicht anders dargestellt.

Sag mir doch bitte mal Bescheid, wie Dein datetime im BE dargestellt wird (mach einfach ein neues News und klicke auf eins der Datumsfelder. Das Feld vor dem Archivdatum müsste original eine datetime zugewiesen haben).

Bin mal gespannt, was Du zu sagen hast.

Danke, Joe.

wwt ·

'n Morgen tomila.

Das heisst, Du hast aber in der jsfunc.evalfield.js die Bindestriche vom Datum gegen Punkte ersetzt oder?

Joe.

wwt ·

O.k., dann ist das klar.
Warum aber das Datum un die Uhrzeit auch bei Dir einstellig geschrieben wird ist nicht klar. Denn auch ein "H" für die Stunde würde ein "07" ausgeben.

Hier ist also irgendwo der Wurm drinnen. In irgend einer Datei, welche das System betrifft, muss festgelegt sein, wie das date bzw datetime bzw. time ausgegeben wird. #angry#

Nur WO ??????

H-I-L-F-E !!!!!!!!

wwt ·

Push!!!

Hallo, nochmals die Frage:
Hat jemand eine Idee, wie das Datum bzw. die datetime im Backend von z.B.:
8:21 2-3-2007 auf 02-03-2007 08:21 umgestellt werden kann???

Woher kommt dieser Bezug?????