Format datumu ve formuláři

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
webdata
Člen | 153
+
0
-

Zdravím,

Možná jsem asi špatně pochopil addFilter ve formuláři. A nebo dělám někde něco špatně. Jde o toto.

Z databáze dostanu fotmát datumu 2011–03–09 19:12:09 a já bych zněj chtěl pěknej českej 09.03.2011 19:12:09.

Ukázka kodu:

public function filterDateTimeFormat($dateTime) {
		// $dateTime obsahuje 09.03.2011 19:12:09.
		return (string) date('d.m.Y H:i:s', strtotime($dateTime));
	}

	protected function createComponentPropertiesForm($name) {
		$form = new NAppForm($this, $name);
		$form->addProtection();
		$form->addGroup();
		.
		.
		$form->addText('createDateTime', 'Vytvořeno: ')->addFilter(callback($this, 'filterDateTimeFormat'))->disabled = TRUE;
		.
		.
		return $form;
	}

V textovém poly formuláře se ale pořád objevuje 2011–03–09 19:12:09.

Předem dík za radu.

Petr Motejlek
Člen | 293
+
0
-

Určitě se podívej do zdrojáků Nette. Obvykle se tam dozvíš víc, než by ti kdo tady na fóru řekl ;).

Ty chceš tu hodnotu z databáze dát jako předvyplněnou hodnotu? Protože na to použij setDefaultValue, případně setValue. Filter je AFAIK na úpravu hodnot, který zadal uživatel a Nette ti ho teď nemá proč volat ;) Pokud chceš uživatelům umožnit zadat tam ten anglickej formát datumčasu, tak ten filtr by ti měl zajistit, že do Form::getValues se ti dostane až ten českej.