PHP datum a čas

PHP datum a čas - zápis a formátování.

Jak vypsat datum a čas

Hlavní metoda PHP pro práci s datem a časem je Time(), která vrací počet sekund uplynulých od 1.1.1970.

<?php
echo(Time());
?>

Ukázka: 1467275616

Tento výsledek je pro návštěvníka dost nečitelný, lze jej ale využít například k vytváření jedinečných názvů souborů například v knize návštěv atd., každá stránka bude mít svůj originální název 1058303790.txt. Je jen málo pravděpodobné, že by vznikly dva soubory ve stejné sekundě.

Transformace data a času

Obvyklý tvar data a času lze získat metodou StrFTime(parametry, Time()):

<?php
$datum = StrFTime("%d/%m/%Y %H:%M:%S", Time());
echo($datum);
?>

30/Thu Jun 30 10:33:36 2016/2016 10:33:36

Pomocí této PHP metody si můžete nastavit formát data i času. / a : určují rozdělovače dnů, měsíců, hodin... (můžete je oddělit čímkoli). Další parametry naleznete v tabulce:

ParametrPopis (možná hodnota)
Datum
%dčíslo dne (1-31)
%mčíslo měsíce (1-12)
%Yčíslo roku (2003)
%azkratka jména dne
%Ajméno dne
%bzkratka jména měsíce
%Bjméno měsíce
Čas
%cdatum a čas
%HHodina (00-23)
%IHodina (01-12)
%jčíslo dne v roce (0-366)
%mčíslo měsíce (01-12)
%Mčíslo minuty
%pdopoledne/odpoledne
%SSekunda
%Učíslo týdne v roce (01-51)
%wčíslo dne v týdnu
%Wčíslo týdne v roce (01-51)
%xDatum podle mezinárodních zvyklostí
%Xčas podle mezinárodních zvyklostí
%yRok jako dvojčíslí (01)
%YRok jako čtyřčíslí (2001)
%z, %Zčasová zóna nebo její zkratka

Abychom z anglický názvů dostali české pojmenování (pozor i anglické číslování dní je jiné), použijeme metodu SetLocale(LC_ALL, "Czech"):

<?php
SetLocale(LC_ALL, "Czech");
$datum = StrFTime("%d/%c/%Y %H:%M:%S %z %B", Time());
echo($datum);
?>

Druhá metoda, která taky umí modifikivat čas a datum je Date(parametry, Time()). Tato metoda se liší od předchozí svými parametry a tím, že vše převádí na evropské standardy:

ParametrPopis (možná hodnota)
YRok - čtyřčíslí
yRok jako dvojčíslí
Mzkratka jména měsíce
mčíslo měsíce (01-12)
Fjméno měsíce
Dzkratka dne v týdnu
ljméno dne v týdnu
wčíslo dne v týdnu (1-7)
dčíslo dne v měsíci (01-31)
jčíslo dne v měsíci (1-31)
zčíslo dne v roce (001-365)
Hhodina (00-23)
hhodina (01-12)
iminuta (00-59)
ssekunda (00-59)
Upočet sekund od 1.1.1970
Sanglická koncovka pořadového čísla dne v měsíci
Adopoledne/odpoledne (AM/PM)
adopoledne/odpoledne (am/pm)

Poslední ukázka:

<?php
$datum = Date("j/m/Y H:i:s", Time());
echo($datum);
?>

Výsledek: 30/06/2016 10:33:36

Úpravy data a času

Obvykle vygenerujete datum a čas typu: 01/01/2008 12:07:05. Nuly v čase nám nevadí, ale nuly v datu by bylo lépe odstranit:

$date = strftime("%d.%c.%Y %H:%M:%S", time());
$date = str_replace(". 0", ". ", $date);
$num = strlen($date);
if(substr($date, 0, 1) == "0") $date = substr($date, 1, $num);

Pomocí regulárních výrazů, hledáme úseky, ve kterých po tečce následuje 0 a nahrazujeme je pouze tečkou ($date = str_replace(". 0", ". ", $date);). Posléze kontrolujeme zda není první znak data 0, pokud tomu tak je, ořízneme řetězec.

Převod řetězce na datum

Někdy je potřeba rychle naformátovat nějaký řetězec do jiné podoby. Můžeme mí datum ve formátu Wed, 12 Dec 2007 08:00:00 GMT. Přeformátování provedeme následujícím skriptem:

$date = "Wed, 12 Dec 2007 08:00:00 GMT";
$date = strtotime($date);
$date = StrFTime("%d.%c.%Y %H:%M:%S", $date);
//12.12.2007 08:00:00

Další: Matematické funkce
Zajímavost: Datum změn dokumentu
Zajímavost: Datum Velikonoc pomocí PHP



Doporučuji
Pro své weby používám *Webhosting C4: 20 GB prostoru, PHP, MySQL, e-maily, subdomény za 1200 Kč (zdarma 2 GB navíc každý rok). Více WebhostingC4.cz.
Potřebujete poradit?


Vyhledávání


Poradna

Pokud si nevíte rady, chcete kontakt na spolehlivého tvůrce webu, či vás zajímá cizí názor, ozvěte se.

Reklama