[Frage] Datum aus Datenbank auslesen und formatieren TYPO3-Version: -

  • rebooo rebooo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    19. 05. 2016, 11:03

    Hallo,

    hoffentlich kann mir jemand weiterhelfen.

    Ich lese das Datum aus der Datenbank von der Extension Calendar Base - Tabelle "tx_cal_event" so aus (startdateoriginal ist mein Marker):

    1. startdateoriginal = TEXT
    2. startdateoriginal {
    3. dataWrap = DB:tx_cal_event:{GP:tx_cal_controller|uid}:start_date
    4. outerWrap = <div class="startdate">Beginn:&nbsp;{|}</div>
    5. }

    und das funktioniert auch wunderbar und ich bekomme diese Ausgabe: Beginn: 20160402.
    In der Datenbank im Feld "start_date" steht auch das Datum genau so drinnen (20160402).

    (Aber eigentlich sollte es ja egal sein welches Feld man von welcher Extension so ausliest - oder?)

    Jetzt mein Problem:
    Ich bekomm die Ausgabe einfach nicht hin - ich würde diese in der Form benötigen: z.B. Samstag, 02.04.2016
    Ich habs schon mit der "date" Funktion und mit "strftime" und "renderObj" und und und versucht - aber wahrscheinlich falsch - und ich brings einfach nicht hin. Ich komm einfach nicht drauf wie ich das anstellen soll...

    (Im "plugin.tx_cal_controller.view.event.event" habe ich auch das dateFormat = %A, %d.%m.%Y so drinnen - aber das greift in diesem Fall nicht.)

    Die Formatierung des Datums funktioniert auch nicht wenn ich z.B. den tstamp auslese.

    Vielleicht hat ja jemand einen Tipp für mich.

    Vielen Dank für Eure Hilfe.

    Typo3 Version 7.6.4
    Calendar Base 1.10.3

    Liebe Grüße


  • 1
  • 0 x
    3209 Beiträge
    151 Hilfreiche Beiträge
    19. 05. 2016, 13:52

    Hallo.

    '20160402' bekommst Du weder mit date-, noch mit strftime-Funktion formatiert. Beide PHP-Funktionen (die letztlich hinter den TS-Eigenschaften stecken) erwarten als Wert einen Timestamp.

    Die Formatierung des Datums funktioniert auch nicht wenn ich z.B. den tstamp auslese.
    Wie sieht dabei Dein TS aus? Denn ein Formatieren von Timestamp klappt normal. Hier kann ggf. die Reihenfolge der Eigenschaften das Problem sein.

    Viele Grüße
    Julian

  • rebooo rebooo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    25. 05. 2016, 09:36

    Hallo Julian,

    vielen Dank für Deine Antwort. Hab keine Benachrichtigung bekommen und hab´s erst jetzt gesehen.

    Also mein TS für den tstamp (zum Testen):

    1. startdateoriginal = TEXT
    2. startdateoriginal {
    3. field = tstamp
    4. strftime = %A, %d.%m.%Y
    5. wrap = <div class="tstamp">Start-Tstamp:&nbsp;&nbsp; |</div>
    6. }

    so klapp ja die Darstellung des Tstamp - da schaut die Ausgabe so aus: Mittwoch, 18.05.2016
    super - passt.

    Nur mein Problem ist, dass ich es einfach nicht in diesem beschriebenen Fall hinbekomme:

    Wert aus "start_date" auslesen:

    1. startdateoriginal = TEXT
    2. startdateoriginal {
    3. dataWrap = DB:tx_cal_event:{GP:tx_cal_controller|uid}:start_date
    4. outerWrap = <div class="startdate">Beginn:&nbsp;{|}</div>
    5. }

    sieht so aus: 20160402 - genau so wie es in der DB gespeichert ist - klappt ja im Prinzip - der Wert kommt ja raus - nur bei der Formatierung haperts - ich würde z.B.: Samstag, 02.04.2016 benötigen.

    So und auf viele andere Arten hab ich es auch versucht - klappt natürlich nicht...

    1. startdateoriginal = COA
    2. startdateoriginal {
    3. 10 = TEXT
    4. 10 {
    5. dataWrap = DB:tx_cal_event:{GP:tx_cal_controller|uid}:tstamp
    6. outerWrap = <div class="startdate">Startdateoriginal:&nbsp;{|}</div>
    7. }
    8. renderObj = COA
    9. renderObj {
    10. 10 = TEXT
    11. 10 {
    12. wrap = |
    13. field = tstamp
    14. strftime = %A, %d.%m.%Y
    15. }
    16. }
    17. }

    Ich hab echt keine Idee mehr - gibt es da keine andere Möglichkeit das hinzubekommen?

    Herzlichen Dank für Deine Hilfe.

    Viele Grüße,
    Hans

  • rebooo rebooo
    T3PO
    0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    30. 05. 2016, 11:43

    Hallo,
    ich bin jetzt etwas weiter gekommen und zwar mit "strtotime = 1"
    Wenn ich das Feld "start_date" so auslese klappt es.

    1. startdateoriginal = TEXT
    2. startdateoriginal {
    3. data = DB:tx_cal_event:2:start_date
    4. strtotime = 1
    5. strftime = %A, %d.%m.%Y
    6. }

    Und die Ausgabe des Datums schau so aus: Samstag, 02.04.2016 - perfekt.

    Allerdings ist ja mit dem Wert "[b]2[/b]" bei

    1. data = DB:tx_cal_event:2:start_date

    die uid des Datensatzes vorgegeben und die sollte eben je nach Datensatz anders sein - Datensatz 1 = uid 1 usw.

    Könnte mir vielleicht da jemand einen Tipp geben wie ich das hinbekomme?

    Vielen Dank für Eure Hilfe.

    Viele Grüße,
    Hans

  • 1