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: 1733631419
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); ?>
08/Sun Dec 8 05:16:59 2024/2024 05:16:59
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:
Parametr | Popis (možná hodnota) |
---|---|
Datum | |
%d | číslo dne (1-31) |
%m | číslo měsíce (1-12) |
%Y | číslo roku (2003) |
%a | zkratka jména dne |
%A | jméno dne |
%b | zkratka jména měsíce |
%B | jméno měsíce |
Čas | |
%c | datum a čas |
%H | Hodina (00-23) |
%I | Hodina (01-12) |
%j | číslo dne v roce (0-366) |
%m | číslo měsíce (01-12) |
%M | číslo minuty |
%p | dopoledne/odpoledne |
%S | Sekunda |
%U | číslo týdne v roce (01-51) |
%w | číslo dne v týdnu |
%W | číslo týdne v roce (01-51) |
%x | Datum podle mezinárodních zvyklostí |
%X | čas podle mezinárodních zvyklostí |
%y | Rok jako dvojčíslí (01) |
%Y | Rok 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
Parametr | Popis (možná hodnota) |
---|---|
Y | Rok - čtyřčíslí |
y | Rok jako dvojčíslí |
M | zkratka jména měsíce |
m | číslo měsíce (01-12) |
F | jméno měsíce |
D | zkratka dne v týdnu |
l | jmé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) |
H | hodina (00-23) |
h | hodina (01-12) |
i | minuta (00-59) |
s | sekunda (00-59) |
U | počet sekund od 1.1.1970 |
S | anglická koncovka pořadového čísla dne v měsíci |
A | dopoledne/odpoledne (AM/PM) |
a | dopoledne/odpoledne (am/pm) |
Poslední ukázka:
<?php $datum = Date("j/m/Y H:i:s", Time()); echo($datum); ?>
Výsledek: 8/12/2024 05:16:59
Ú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
Vyhledávání
Základy
Rozšíření
Příklady
- PHP scripty
- Kniha návštěv
- Ochrana e-mailu
- Malé šablony
- Počítadlo návštěv
- Odeslání e-mailu
- Generování formuláře
- IP adresa
- RSS čtečka
- Heslo
- Zaheslování jedné stránky
- Ověření e-mailu
- Odstranění diakritiky
- Aktuální datum a čas
- Vypsání souboru
- Počet souborů v adresáři
- Vypsat název dne
- Vypsat název měsíce
Ostatní
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.