input->setDefaultValue() – čas a datum

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

Dobrý den,

mám vytvořený editační formulář a v něm i inputy (type = text) pro čas a datum. V databázi mám vytvořený sloupec datum (DATE) a cas (TIME). A chci pomocí setDefaultValue nastavit získané hodnoty z databáze, ale zde je problém. Při nastavení defaultní hodnoty pro oba inputy (čas i datum) je problém s formátem (času a datumu). I přes nastavený datový typ v databázi se mi do obou inputů vkládají hodnoty datum + čas tzn. rrrr-mm-dd hh:mm:ss např. 2013–03–26 16:00:00. Jak tedy upravit získané hodnoty z databáze aby pro input-datum byla hodnota 2013–03–26 a pro input-čas hodnota 16:00:00 (ještě lépe 16:00 a pak při updatu času „podstrčit“ sekundy)?

JakubTN
Člen | 48
+
0
-

Datum a cas z databazy su automaticky vratene ako objekt Nette\DateTime preto vzdy defaultne obsahuju datum aj cas. Tvoj problem vyriesi toto:

$form['input-datum']->setDefaultValue($row->datum->format('Y-m-d'));
$form['input-cas']->setDefaultValue($row->cas->format('H:i'));

Pre dalsie metody na pracu s datumom a casom pozri API