Viac na
Formát PHP date() pri vkladaní do datetime v MySQL
Aký je správny formát, ktorý sa má odovzdať funkcii date()
v PHP, ak chcem výsledok vložiť do stĺpca MySQL typu datetime
?
Skúšal som date("Y-M-D G:i:s")
, ale to vždy vloží len "0000-00-00 00:00:00".
297
3
Problém je v tom, že používate
'M'
a'D'
, čo sú textové reprezentácie, MySQL očakáva číselnú reprezentáciu vo formáte2010-02-06 19:30:13
.Skúste:
date("Y-m-d H:i:s")
, ktorý používa číselné ekvivalenty.edit: zmenil som
G
naH
, aj keď to nemusí mať vplyv, pravdepodobne chcete použiť 24-hodinový formát s úvodnými 0.Z komentárov php's
date()
manuál stránky:Správne ste uviedli 'Y' - je to celý rok, ale 'M' je trojmiestny mesiac, zatiaľ čo 'm' je dvojmiestny mesiac. Rovnaký problém je aj s 'D' namiesto 'd'. 'G' je jedno- alebo dvojmiestna hodina, pričom 'H' má v prípade potreby vždy úvodnú 0.
Tu je alternatívne riešenie: ak máte dátum v PHP ako časovú značku, obíďte jeho spracovanie pomocou PHP a nechajte DB, aby sa postarala o jeho transformáciu pomocou funkcie
FROM_UNIXTIME
.