Typ DATE v DB vždy vrátí Nette\Utils\DateTime

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

Zdravím,
řeším takový problém.

Model (zkráceno):

$user = $this->database->table("users")
                       ->get($id);

Formulář (zkráceno):

$form->addText("born", "Datum narození")
     ->setType("date")
     ->setAttribute("placeholder", "Datum narození");

Do HTML se ale vždy vykreslí něco jako:

<input type="date" name="born" value="2010-02-01 00:00:00">

Já však potřebuji, aby tam bylo:

<input type="date" name="born" value="2010-02-01">

V DB je sloupec „born“ typu „date“. Nepomůže, pokud je to „datetime“ ani „timestamp“.

Nevíte, jak toho docílit? Změnou SQL dotazu na SELECT DATE(born)… jsem neuspěl, pořád to vrací Nette\Utils\DateTime.

Oli
Člen | 1215
+
+5
-

Vždy to bude vracet datetime. Můžeš si ale určit, co chceš zobrazit. $date->format('Y-m-d').

pavel_l
Člen | 5
+
0
-

Kde se ten objekt DateTime bere? To vrací přímo PDO?

Řešil jsem stejný problém jako OP, musel jsem si opravit komponentu DatePicker.

Pavel Kravčík
Člen | 1196
+
0
-

U větších tabulek by to mohl být problém, ne?

Vytváření DateTime by mohlo být pomalé.

Unlink
Člen | 298
+
0
-

Ono sa to bude dať vyriešiť vlastným row normalizerom
https://github.com/…ase/pull/138