Nette databáze – date formát bez hodin
- Muhahe
- Člen | 79
Přepisuji již fungující aplikaci do nette a DB přitom nechávám nezměněnou. Narazil jsem na problém s DATE v databázi. V předchozí aplikaci když jsem k tomuto typu přistupoval, tak se mi z databáze vracel čas ve formátu YYYY-MM-DD. Pokud k té samé databázi přistupuji z nette dostávám objekt (?) s obsahující timezone_type, timezone a date. Vykousat date z objektu není problém, ale zarazilo mě že date je vracen ve formátu YYYY-MM-DD HH:MM:SS. Je možné rozumným způsobem dostat z DB pouze YYYY-MM-DD, nebo je potřeba split?
- Muhahe
- Člen | 79
JHadamcik napsal(a):
$row->datetime->format('Y-m-d H:i:s');
?
Pokud ano pak prostě
$row->datetime->format('Y-m-d');
Díky za myšlenku, jen ještě takovej blbej dotaz, jde tohle aplikovat na celou sadu vysledku z DB? Respektive z databáze vybírám celou sadu dat a některé z nich jsou právě DATE. Je třeba ta změna formátu aplikovat na jednotlivé řádky (sloupce), nebo je možné to použít na celý výsledek? Jde o to že vybraná data dále předávám jako pole v šabloně javascriptu.
- llook
- Člen | 407
Ten datum je vrácen jako objekt Nette\DateTime
. Při výpisu
v šabloně se použije jeho metoda __toString()
, která to
formátuje v tom formátu, co se ti nelíbí. Když to chceš formátovat
jinak, tak buďto tou metodou format(), nebo helperem date, např.:
{$row->datum|date:"d. n. Y"}
Editoval llook (12. 9. 2013 14:04)
- Muhahe
- Člen | 79
llook napsal(a):
Ten datum je vrácen jako objekt
Nette\DateTime
. Při výpisu v šabloně se použije jeho metoda__toString()
, která to formátuje v tom formátu, co se ti nelíbí. Když to chceš formátovat jinak, tak buďto tou metodou format(), nebo helperem date, např.:{$row->datum|date:"d. n. Y"}
Asi už budu vypadat jako ignorant, ale lze helper použít na javascriptovou proměnnou? Jak jsem psal výše, data předávám jako pole javascriptu, konkrétně datatables a ideálně bych změnu formátu prováděl až tam. Např
<script>
{"mDataProp": function(source, type, val){
return( { source.zacatek.date|date:'d. m. Y'})
}},
</script>
Existuje funkční řešení tohoto kódu?
- Muhahe
- Člen | 79
ViPErCZ napsal(a):
Toto source.zacatek.date mít jako object Date a z toho si to pak natahat. Na jsku to takhle nepůjde.
Toho jsem si vědom, hlavně mě zajímalo, jestli to nejde nastavit nějak globálně, nebo přímo v presenteru/modelu nad celou sadou dat. Ale no nic split to pořeší.
Díky všem