Zum Inhalt springen

Datum aus Datenbank auslesen und formatieren

Erstellt am 19. Mai 2016 · 3 Antworten · letzte Antwort am 30. Mai 2016

Tags: Kalender & Termine, TYPO3 7, Frage

rebooo ·

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):

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

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

Julian.​Hofmann ·

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 ·

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):

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

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:

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

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...

startdateoriginal = COA
startdateoriginal {
  10 = TEXT
  10 {
    dataWrap = DB:tx_cal_event:{GP:tx_cal_controller|uid}:tstamp
    outerWrap = <div class="startdate">Startdateoriginal:&nbsp;{|}</div>
    insertData = 1
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10 {
      required = 1
      wrap = |
      field = tstamp
      strftime = %A, %d.%m.%Y
    }
  }
}

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 ·

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

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

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

Allerdings ist ja mit dem Wert "2" bei

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