Autor Zpráva
preca1
Profil
Ahoj,
v ČR se data většinou píšou ve formátu D.M. YYYY a tak bych je chtěl ukládat a následně vypisovat. Používam PHP a MySQL a tam je typ DATE. Dle dokumentace: MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format, čemuž rozumim tak, že v sloupci typu DATE může být datum pouze v tomto formátu. Existuje ale i SQL fce DATE_FORMAT(), která umí datum různě formátovat, ale nechápu přesně její použití. Zároveň sou i PHP fce, který dokážou formátovat data nebo stringy.
Taky je možnost ukládat data jako string (typ VARCHAR) vytvořený pomocí PHP fce date(), který už bude mít správný tvar ($datum = date("j.n.Y")), což mi příde jako docela prasácký řešení.
Moje otázka teda zní, jak profesionálové správně vkládají data? A jak pak docílí, aby se jim v prohlížeči zobrazovala, jak chtěj (např. D.M.YYYY na djpw)?
Dík za poznatky
Keeehi
Profil
Profesionál nejsem, ale datum ukládám ve tvaru 'YYYY-MM-DD' a při vybírání z databáze použiji DATE_FORMAT().
Alphard
Profil
preca1:
čemuž rozumim tak, že v sloupci typu DATE může být datum pouze v tomto formátu
Ne, to je jen výchozí formát. Datový typ date je určen pro ukládání dat. Nevím přesně, jak si je ukládá databáze interně a ani to není podstatné. Důležité je, že s tímto datovým typem lze pak provádět operace jako přičítání a odčítání intrvalů, porovnávání, vkládaní např. funkcí now() a formátování výpisu (existuje více funkcí, než date_format(), můžete si třeba nechat vrátit přímo jen den).

Moje otázka teda zní, jak profesionálové správně vkládají data?
Ukládají se do vhodných datových typů. Vybírejte podle toho, co potřebujete ukládat.

A jak pak docílí, aby se jim v prohlížeči zobrazovala, jak chtěj (např. D.M.YYYY na djpw)?
Zmíněným date_format(). Kdyby byl problém použít tuto funkci, a chtěl jste to formátovat až aplikaci, tak můžete použít kombinaci date() a strtotime().

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0