Rozdíl mezi PHP funkcemi date() a gmdate()
Obsah
Pokud v PHP pracujete s datumem a časem, často narazíte na dvě velmi podobné funkce – date() a gmdate(). Na první pohled dělají totéž, ale rozdíl spočívá v tom, jaký čas používají jako základ pro výstup.
date() – Lokální čas serveru
Funkce date() vrací datum a čas podle lokálního časového pásma serveru. Pokud server běží např. v časovém pásmu „Europe/Prague“, bude výstup odpovídat tomuto pásmu.
<?php
date_default_timezone_set('Europe/Prague');
echo date("Y-m-d H:i:s");
?>
Výstup: 2025-03-15 14:30:00 (například)
gmdate() – UTC čas
Funkce gmdate() naproti tomu vrací datum a čas podle UTC (Coordinated Universal Time), tedy nezávisle na časovém pásmu serveru.
<?php
echo gmdate("Y-m-d H:i:s");
?>
Výstup: 2025-03-15 13:30:00 – což odpovídá UTC času bez posunu časového pásma.
Praktický rozdíl mezi date() a gmdate()
| Funkce | Základní čas | Typické použití |
|---|---|---|
date() |
Lokální čas serveru (nastavitelný) | Zobrazení uživatelům, časové značky, události |
gmdate() |
UTC čas | Exporty, synchronizace, RSS, API data |
Příklad porovnání obou funkcí
<?php
date_default_timezone_set('Europe/Prague');
echo "Lokální čas: " . date("Y-m-d H:i:s") . "<br>";
echo "UTC čas: " . gmdate("Y-m-d H:i:s");
?>
Výstup:
- Lokální čas: 2025-03-15 14:45:00
- UTC čas: 2025-03-15 13:45:00
Kdy použít kterou funkci?
date()– pokud potřebujete pracovat s časem v konkrétním časovém pásmu, např. pro uživatelské rozhraní, události, publikace článků.gmdate()– když potřebujete konzistentní a standardizovaný čas, např. v exportech, RSS feedech, API nebo protokolech.
Závěr
Obě funkce jsou velmi užitečné – důležité je ale správně vědět, kdy použít kterou. Pokud potřebujete čas v místním formátu, použijte date(). Pokud však vytváříte výstupy, které musí být časově univerzální (například XML nebo RSS), použijte raději gmdate().
Poslední aktualizace článku proběhla 15.3.2025.
OBJEDNAT SEO OPTIMALIZACI
Tomáš Rohlena