Fluid formatiert Datum in UTC?

  • kae kae
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    26. 08. 2011, 13:20

    Liebes Forum,

    bei mir spuckt Fluid immer ein falsches Datum raus, obwohl der Timestamp korrekt in dr Datenbank gespeichert wurde,
    z.B. aus 320447660 wird dann 04.11.2011

    1. <f:format.date format="d.m.Y">@{singleItem.premierendatum}</f:format.date>

    Ich habe in Model und TCA alles als Datetime deklariert - kann es sein, daß das an den Server-Einstellungen liegen kann?

    Vielen Dank für Eure Hilfe :)


  • 1
  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    12. 09. 2011, 10:24

    du kannst in den Setter und Getter Methoden des Models die Zeitzone wie gewünscht anpassen.
    z.b. so:

    1. /**
    2. * @param DateTime $von
    3. * @return void
    4. */
    5. public function setVon(DateTime $von) {
    6. $this->von = $von;
    7. $this->von->setTimezone (new DateTimeZone ('UTC'));
    8. }
    9.  
    10. /**
    11. * @return DateTime
    12. */
    13. public function getVon() {
    14. if ($this->von instanceof DateTime)
    15. $this->von->setTimezone (new DateTimeZone ('UTC'));
    16. return $this->von;
    17. }

    Grüße
    Alex

  • kae kae
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    13. 09. 2011, 12:21

    Danke für Eure Antworten! Wenn auch kein Erfolg bisher...

    @rlp_immigrant
    Leider ändert sich nichts, wenn ich die DateTimezone im Model auf 'Europe' oder etwas anderes stelle.

    @froemken
    Ich brauche den Datepicker für den Redakteur, deshalb möchte ich kein int nehmen.

    Es bleibt dabei, wenn ich per Datepicker zum Beispiel 12.05.2012 00:00 auswähle wird angezeigt 11.05.2012 22:00 - obwohl der Timestamp in der DB korrekt ist.

    Als dirty Workaround habe ich vorerst das SQL-Statement manipuliert, daß es dort gleich 2 Stunden addiert - aber das ist definitiv keine schöne Lösung ;/

  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    13. 09. 2011, 14:58

    Stimmen die Zeiten denn sonst?
    Also wenn du mal z.B. im Backend unter Protokoll nachschaust.
    Wenn die Zeiten dort auch falsch sind, dann liegt es definitiv am Server.

  • kae kae
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    13. 09. 2011, 16:04

    Habe gerade nachgeschaut - Server-Zeit im Protokoll ist korrekt.

    Der Wurm scheint wirklich im formatdate-Viewhelper zu stecken.
    Oder zur Not muss ich mir eben eine eigenen Helper schreiben :)

  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2011, 09:01

    Was passiert denn wenn du das @ wegmachst? Spuckt er dann eine Warnung aus?

    Hast du schon mal

    1. <f:debug">{singleItem.premierendatum}</f:debug>

    ausprobiert?
    Was sagt er da denn? Besonders bei der Zeitzone...

    Der Formardate Viewhelper funktioniert normalerweise 1A. Ich verwende den häufig.

    Grüße
    Alex

  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2011, 09:09

    Schau mal in die Doku vom DatenViewHelper.
    Da steht dass das @ verwendet werden muss wenn du einen Timestamp verwendest. Wenn ich es richtig verstehe, verwendest du aber ein DateTime Objekt.
    Bei der Erstellung des Objektes generiert Extbase normalerweise immer ein DateTime Objekt

  • kae kae
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2011, 12:03

    Also, nächste Testreihe:

    Wenn ich das @ weglasse kommt folgendes:
    "1341093660" could not be parsed by DateTime constructor.

    debug gibt nur den Timestamp aus.

    Das Ganze scheint mittlerweile ein bekannter Fehler zu sein, siehe hier:
    http://lists.typo3.org/pipermail/typo3-project-typo3v4mvc/2010-July/005969.html

    Vielleicht gibts ja bald ein Patch :)
    Jedenfalls Danke für die Hilfe!

  • rlp_immigrant rlp_immig...
    Padawan
    0 x
    58 Beiträge
    0 Hilfreiche Beiträge
    14. 09. 2011, 16:57

    Nee, also ein genereller Fehler ist das nicht.
    Ich arbeite häufig mit DateTime und da geht es...

    Bist du sicher das du im Model die Annotation drin hast?

    1. /**
    2. * Ende Uhrzeit
    3. *
    4. * @var DateTime
    5. * @validate NotEmpty
    6. */
    7. protected $bis;

    Ansonsten wüsste Extbase gar nicht das er ein DateTime Objekt erstellen soll.

    Und der Vollständigkeit halber das passende TCA

    1. 'bis' => array(
    2. 'exclude' => 0,
    3. 'label' => 'Ende',
    4. 'config' => array(
    5. 'type' => 'input',
    6. 'size' => 12,
    7. 'max' => 20,
    8. 'eval' => 'time',
    9. 'checkbox' => 1,
    10. 'default' => 0
    11. ),

    Ich hoffe es hilft

    Grüße
    Alex

  • mbuchegger mbuchegge...
    Jedi-Meister
    0 x
    253 Beiträge
    0 Hilfreiche Beiträge
    02. 09. 2016, 00:56

    Hey.

    Gibt's dazu ne genaue Lösung?
    Ich hatte das schon mal mit ner Extension. Allerdings war es damals eine Stunde. Vielleicht hat das aber jetzt was mit der Sommerzeit zu tun.

    Aktuell hab ich auch 2 Stunden immer später im Frontend als überall anders. Das macht alles gar keinen Sinn. Theoretisch funktioniert das im Frontend mit der Einstellung ServerTimeZone = UTC - was spannend ist, aber dann stimmen die Zeiten im Protokoll... um zwei Stunden wieder nicht...

    What's that. Warum?!

    Hat jemand hier ne wirkliche Lösung? Faktisch hat das noch nie auf Anhieb bei mir geklappt und ich hab letztes mal vergessen aufzuschreiben woran es lag.

    lg M.

  • 1