Autor Zpráva
Pavel Jíl
Profil *
Dobrý den,

v databázi mám datum 2016-18-10 čili YYYY-DD-MM a já ho potřebuji vypsat ve formátu 18. 10. 2016, ale vůbec netuším jak.

Pro výpis z databáze používám toto: {{ $product->dostupnost }}

Jak to mám prosím pěkně upravit, abych si to zobrazil v hezkém formátu?

Předem děkuji!
Chuchycek
Profil
Ahoj,
můžeš si to třeba naformátovat v db: date_format(dostupnost, '%d.%m.%Y')
Pavel Jíl
Profil *
PHP moc nezvládám, nemohl bych poprosit přímo o kód, který nahradím tím, co je výše? :( Díky
juriad
Profil
Chuchycek:
To není přiliš vhodné, protože může později požadovat změnu lokálu podle umístění klienta. Nebo může chtít vypisovat čas relativně vůči aktuálnímu.

Vytvoř si funkci:
function formatDatumu($d) {
  $date = new DateTime($d);
  return $date->format('j. n. Y');
}

Pak na všech místech, kde potřebuješ vypsat datum použiješ:
{{ formatDatumu($product->dostupnost) }}

Pozor, neřekl jsi, jaký šablonovací systém používáš, je tedy možné, že takto to udělat nejde.
leorond
Profil
Já používám pro zápis do databáze

time(); // Zápis aktuálního času

a poté ho vypisuji různě jak já chci přes

date();
date() návod
juriad
Profil
leorond:
Ukládat datum a čas do databáze jako INT není většinou vhodné. Připravuješ se o operace jako je výpočet dne v týdnu. Je lepší použít takový datový typ, který je k tomu určený (DATE, DATETIME).
Následné formátování v PHP je v každém případě otázka jedné, dvou řádek. Já jsem použil modernější přístup pomocí třídy DateTime, což umožňuje snadné rozšíření té funkce pro formátování datumu a času jako tady na diskusi (Dnes, 08:53:42; Předevčírem, 12:26:02; o minutu později).
leorond
Profil
juriad:
Ano to máš pravdu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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