---
title: "Viewhelper Format.date spinnt?!"
url: "https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage"]
created: "2011-10-19"
last_reply: "2011-10-19"
replies: 7
solved: false
page: 1
pages: 1
lang: "de"
---

# Viewhelper Format.date spinnt?!

Extensions › Extbase · 7 Antworten · gestartet 2011-10-19

## Eröffnungsbeitrag

**Typo3Cuckoo** · 2011-10-19 · [Beitrag #1](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/1)

Hi,

ich hab ne Extension geschrieben, welche ich per Persistence Mapping auf die DAM Extension gemappt habe um Bilder auszugeben (Tabelle tx_dam).

Funktioniert soweit ganz gut. Nun möchte auch das Feld **crdate** im Frontend ausgeben, jedoch erhalte ich absolut unsinnige Datumsformatierungen!

**Domain Model**

```php
<?php

/**
 * crdate
 * 
 * @var int
 */
protected $crdate;


/**
 * Returns the crdate
 * 
 * @return int
 */
public function getCrdate() {
	return $this->crdate;
}
?>
```

**Typoscript Setup**

```typoscript
plugin.tx_myext {
	persistence {
		classes {
			Tx_MyExt_Domain_Model_Media {
				mapping {
					tableName = tx_dam
					columns {
						crdate.mapOnProperty = crdate
					}
				}
			}
		}
	}
}
```

**Fluid Template**

```html
<f:for each="{objects}" as="object">
	Unformatierte Ausgabe: {object.crdate}
	<br/>
	Formatierte Ausgabe: <f:format.date format="d.m.Y">{object.crdate}</f:format.date>
	<br/>
</f:for>
```

**Ausgabe im Frontend**

```html
Unformatierte Ausgabe: 1314017004
Formatierte Ausgabe: 17.01.1314 - -99999:-99999:-99999
```

Die zweite Zeite sollte eigentlich das ausgeben: **22.08.2011 - 14:43:24**

Kann mir das einer erklären? :o

## Antworten

### [#2](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/2) · Typo3Cuckoo · 2011-10-19

Ich bin einen Schritt weiter: das Datum wird nun richtig ausgegeben. Jedoch musste ich dafür einen heftigen Umweg machen #paralyzed#

Das Datum (Timestamp) kommt aus dem gemappten Feld **crdate** der DAM Extension, und zwar als Integer (also eigentich korrekt). Normalerweise funktioniert das ja problemlos, einen Timestamp vom Datentyp Integer im Fluid Template mittels Viewhelper Format.date in ein passendes Datum umzuformatieren (dafür ist der Viewhelper schließlich da). Hab das bisher auch schon an einer anderen Stelle gemacht (andere Extension), jedoch kam das Datum aus der eignen Extension und nicht aus einem gemappten Datenbankfeld.

Ich hab also testweise im Controller das gemappte Feld nicht einfach direkt an Fluid übergeben, sondern mittels **(string)** erst auf String gecastet (siehe hierzug: <http://de.php.net/manual/de/language.types.type-juggling.php>):

```php
<?php
$this->view->assign('crdate', (string)$object->getCrdate());
?>
```

Das war mir aber zu blöd, schließlich sollte das ja eigentlich von alleine funktionieren und ich möchte nicht ständig die Daten erst umcasten damit ich sie an den View übergeben kann!

Hab dann weitergesucht und bin auf folgende Lösung gestoßen:
<http://www.felixnagel.com/blog/artikel/2011/10/07/typo3-lokalisierte-datumsausgabe-mit-fluid/>

Mit etwas Anpassung kann ich nun das gemappte Feld direkt an den View übergeben. Dafür musste ich aber den View anpassen:

```html
<f:for each="{objects}" as="object">
	Formatierte Ausgabe: <f:cObject typoscriptObjectPath="lib.fluid_ll_date" data="<f:format.printf arguments=\"{1: '{object.date}'}\">%s</f:format.printf>" />
</f:for>
```

Das Typoscript Setup wird um folgendes erweitert:

```typoscript
lib.fluid_ll_date = TEXT
lib.fluid_ll_date {
  current = 1
  strftime = %d. %B %Y
}
```

Wenn ihr mich fragt ist das ziemlich viel Aufwand für ne Datumsformatierung, vor allem wenn es einen zuständigen Viewhelper gibt (welcher anscheinend nicht mit gemappten Datenbankfeldern funktioniert #paralyzed#).

Kennt ihr eine bessere Lösung?

### [#3](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/3) · freshman17 · 2011-10-19

Hast du auch crdate im TCA konfiguriert?

```php
'crdate' => Array (
	'exclude' => 1,
	'label' => 'crdate',
	'config' => Array (
		'type' => 'none',
		'eval' => 'datetime',
	),
),
```

### [#4](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/4) · Typo3Cuckoo · 2011-10-19

Ne hab ich nicht. Ich möchte die gemappten Daten in meiner eigenen Extension ja nicht bearbeiten sondern lediglich ausgeben. Deswegen dachte, ich, dass man garkein TCA braucht? :o

Ich habe noch andere Felder der DAM Extension gemappt und da funktioniert die Ausgabe problemlos, ohne TCA.

ext_tables.php sieht so aus:

```php
<?php
if (!defined('TYPO3_MODE')) {
	die ('Access denied.');
}

Tx_Extbase_Utility_Extension::registerPlugin(
	$_EXTKEY,
	'Pi1',
	'My Extension'
);

t3lib_extMgm::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'My Extension');
?>
```

Wieso muss ich das TCA angeben?

### [#5](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/5) · freshman17 · 2011-10-19

Du mappst ja das Feld auf dein Model und wenn dieses nicht im TCA konfiguriert ist, dürfte es doch nicht angezeigt werden, oder habe ich einen Denkfehler?

### [#6](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/6) · Typo3Cuckoo · 2011-10-19

Das TCA ist doch für die Datensatzformulare im Backend, oder irre ich mich da?

Meine Extension hat jedoch im Backend keine Konfigurationsmöglichkeit, sprich, man soll damit wirklich nur eine formatierte Ausgabe der Daten aus der DAM Extension machen, mehr nicht.

Brauch ich dann trotzdem dein TCA (vielleicht mit type="passthrough")?

### [#7](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/7) · freshman17 · 2011-10-19

Ich vermute dass die Felder die du ausliest, die sind schon in der Dam-Ext. im TCA konfiguriert (bis auf das crdate), daher muss dieses auch für die Verwendung nachgeholt werden.
Aber mach doch einfach einen Test dann wissen wir es :)

ext_tables.php:

```php
t3lib_div::loadTCA('tx_dam');
$TCA['tx_dam']['columns']['crdate'] = array (
	'exclude' => 1,
	'label' => 'crdate',
	'config' => Array (
		'type' => 'none',
		'eval' => 'datetime',
	),
);
```

### [#8](https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt/8) · Typo3Cuckoo · 2011-10-19

Also das TCA hat nicht geholfen, dennoch vielen Dank für deine Mühe :)

Etwas anderes hat jedoch funktioniert und ich könnte schwören, dass ich das schon versucht habe! Warum es damals nicht geklappt kann ich nicht sagen?! #paralyzed#

Ich hab in meinem Domain Model, das Attribut **crdate** nicht als **Integer** sondern als **DatTime** angegeben:

```php
<?php
 
/**
 * crdate
 * 
 * @var DateTime
 */
protected $crdate;
 
 
/**
 * Returns the crdate
 * 
 * @return DateTime
 */
public function getCrdate() {
	return $this->crdate;
}
?>
```

Nun stimmt die Ausgabe des Viewhelpers **Format.date** wieder und der ganze Umweg von oben kann ich wieder raushauen :)

---

Quelle: „Viewhelper Format.date spinnt?!“, typo3.net, https://www.typo3.net/d/107839-viewhelper-formatdate-spinnt
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
