Extbase 6.1 DateTime Format anpassen

Das macht mich gerade etwas unglücklich, auch wenn ich dank diesen Threads im Forum eine Lösung gefunden habe. Das Model erwartet das Datetime Feld im Format „Y-m-d\TH:i:sP“, ansonsten kommt es zur Fehlermeldung:

The date „20.02.2016 20:00“ was not recognized (for format „Y-m-d\TH:i:sP“).

Das Format ist nun aber leider nicht wirklich benutzerfreundlich. Selbst wenn es in der Regel per Datepicker gewählt wird, ist es als Fallback kaum zu gebrauchen. Eine nicht allzu abgehobene Anforderung dachte ich mir. Die Lösung im Controller sieht dann aber aus, als wolle ich etwas sehr ungewöhnliches:

public function initializeAction() {
  if(isset($this->arguments['newCountdown'])) {
    $arguments_key = 'newCountdown';
  } elseif(isset($this->arguments['countdown'])) {
    $arguments_key = 'countdown';
  }
 
  if (isset($arguments_key)) {
    $this->arguments[$arguments_key]
      ->getPropertyMappingConfiguration()
      ->forProperty('datetime')
      ->setTypeConverterOption('TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter',
      \TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT,'d.m.Y H:i');
  }
}

Ist das wirklich der einzige Weg oder habe ich doch einfach nur keine Ahnung? Ich würde meine Ahnungslosigkeit gerne in Kauf nehmen, wenn ich den Code dafür weg bekäme…

Ein Gedanke zu „Extbase 6.1 DateTime Format anpassen“

  1. Hey Andy,

    Du kannst das Format auch im Fluid definieren und mit übergeben. Damit sparst du die das Gefrickel in der Klasse. Hier ein Beispiel aus einem Template der YAG:

    <div class="field-wrapper type-text">
    <f:form.textfield name="album[date][date]" value="{f:format.date(date:album.date)}" id="tx-yag-album-date"/>
    <f:form.hidden name="album[date][dateFormat]" value="Y-m-d"/>
    </div>

    Gruß,
    Daniel

Kommentare sind geschlossen.