Autor | Zpráva | ||
---|---|---|---|
preca1 Profil |
#1 · Zasláno: 15. 9. 2010, 13:39:55
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 |
#2 · Zasláno: 15. 9. 2010, 13:52:07
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 |
#3 · Zasláno: 15. 9. 2010, 14:28:52
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(). |
||
Časová prodleva: 15 let
|
0