Funkce PHP Date() & Time: Jak získat aktuální časové razítko?

⚡ Chytré shrnutí

Funkce date() v PHP formátuje časová razítka do čitelného formátu data a času. Tento návod vysvětluje syntaxi data, časové razítko v Unixu, jak vypsat a nastavit časová pásma, funkci mktime pro vytváření časových razítek a kompletní referenci formátovacích znaků času, dne, měsíce a roku.

  • 📅 Co dělá date(): Funkce date převede časové razítko na formátovaný řetězec pomocí znaků jako Y, m a d pro rok, měsíc a den.
  • ⏱️ Časové razítko Unixu: Časové razítko je počet sekund od 1. ledna 1970 GMT a time() vrací aktuální hodnotu.
  • ???? Časová pásma: date_default_timezone_set změní aktivní časové pásmo a DateTimeZone::listIdentifiers vypíše všechna podporovaná pásma.
  • 🔧 čas mktime: Funkce mktime vytváří časové razítko z určité hodiny, minuty, sekundy, měsíce, dne a roku.
  • 🔤 Formátovat znaky: Jednotlivá písmena ovládají výstup, například H pro 24hodinový čas, l pro název dne v týdnu a F pro název měsíce.
  • 📐 Referenční tabulky: Seskupené tabulky obsahují seznam znaků formátu času, dne, měsíce a roku s příkladem, který lze pro každý z nich spustit.
  • 🤖 AI Assist: Nástroje umělé inteligence dokáží generovat formátování data a rozdílový kód a pomáhají řešit matoucí chyby v časových pásmech.

Funkce PHP date().

Funkce PHP date().

Funkce date v PHP je vestavěná funkce, která zjednodušuje práci s datovými typy data. Funkce date v PHP se používá k formátování data nebo času do formátu čitelného pro člověka. Lze ji použít k zobrazení data publikování článku nebo k záznamu poslední aktualizace dat v databázi.

Syntaxe data PHP a příklad

Funkce date() v PHP má následující základní syntaxi.

<?php
date(format,[timestamp]);
?>

TADY,

  • „date(…)“ je funkce, která vrací aktuální časové razítko formátované v PHP na serveru.
  • „formát“ je obecný formát, ve kterém chceme mít výstup, například:
    • „Ymd“ pro formát data v PHP RRRR-MM-DD
    • „Y“ pro zobrazení aktuálního roku
  • „[timestamp]“ je volitelný. Pokud nebylo zadáno žádné časové razítko, PHP použije aktuální datum a čas na serveru.

Podívejme se na základní příklad, který zobrazuje aktuální rok.

<?php

echo date("Y");

?>

Výstup:

2026

Co je časové razítko?

Časové razítko v PHP je číselná hodnota v sekundách mezi aktuálním časem a hodnotou v 1.st Leden 1970 00:00:00 greenwichského středního času (GMT).

Hodnota vrácená funkcí času závisí na výchozím časovém pásmu.

Výchozí časové pásmo je nastaveno v souboru php.ini. Lze jej také nastavit programově pomocí funkce date_default_timezone_set.

Níže uvedený kód zobrazuje aktuální časové razítko.

<?php

echo time();

?>

Za předpokladu, že jste soubor timestamp.php uložili do složky phptuts, přejděte do URL http://localhost/phptuts/timestamp.php

TimeStamp

Poznámka: Hodnota časového razítka není konstantní. Mění se každou sekundu.

Získání seznamu dostupných identifikátorů časových pásem

Než se podíváme na to, jak programově nastavit výchozí časové pásmo, podívejme se, jak získat seznam podporovaných časových pásem.

<?php

$timezone_identifiers = DateTimeZone::listIdentifiers();

foreach($timezone_identifiers as $key => $list){

echo $list . "<br/>";

}
?>

TADY,

  • „$timezone_identifiers = DateTimeZone::listIdentifiers();“ volá statickou metodu listIdentifiers vestavěné třídy DateTimeZone. Metoda listIdentifiers vrací seznam identifikátorů, které jsou přiřazeny proměnné $timezone_identifiers.
  • „foreach{…}“ prochází polem a vypisuje hodnoty.

Za předpokladu, že jste soubor list_time_zones.php uložili do složky phptuts, přejděte do URL http://localhost/phptuts/list_time_zones.php

Identifikátory časového pásma

PHP nastavuje časové pásmo programově

Funkce date_default_timezone_set umožňuje nastavit výchozí časové pásmo z PHP skriptu.

Nastavené časové pásmo bude poté použito pro všechny Funkce PHP ve vašich skriptech. Má následující syntaxi.

<?php
date_default_timezone_set(string $timezone_identifier);
?>

TADY,

  • „date_default_timezone_set()“ je funkce, která nastavuje výchozí časové pásmo
  • „string $timezone_identifier“ je identifikátor časového pásma

Následující skript zobrazuje čas podle výchozího časového pásma nastaveného v souboru php.ini. Poté změní výchozí časové pásmo na Asie/Kalkata a znovu zobrazí čas.

<?php
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");

date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
?>

Za předpokladu, že jste uložili soubor set_time_zone.php do složky phptuts, přejděte do URL http://localhost/phptuts/set_time_zone.php

PHP nastavuje časové pásmo programově

Funkce PHP Mktime

Funkce mktime vrací časové razítko v a Unix formát.

Má následující syntaxi.

<?php
mktime(hour, minute, second, month, day, year, is_dst);
?>

TADY,

  • „mktime(…)“ je funkce časového razítka v PHP
  • „hodina“ je volitelné; je to číslo hodiny
  • „Minuta“ je volitelné; jedná se o počet minut
  • „Sekunda“ je volitelné; jedná se o počet sekund
  • „Měsíc“ je volitelný; je to číslo měsíce
  • „den“ je volitelný; je to číslo dne
  • „Rok“ je volitelný; je to číslo roku
  • „is_dst“ je volitelný argument; používá se k určení letního času (DST). 1 je pro DST, 0, pokud ne, a -1, pokud není znám.

Podívejme se nyní na příklad, který vytváří časové razítko pro datum 13. 10. 2025 pomocí funkce mktime.

<?php

echo mktime(0,0,0,10,13,2025);

?>

TADY,

  • „0,0,0“ představuje hodinu, minutu a sekundu.
  • „10“ je měsíc v roce
  • „13“ je den v měsíci
  • „2025“ je rok

Výstup:

1760328000

Referenční příručka pro formát data v PHP

Níže uvedené tabulky ukazují běžné formátovací znaky používané při práci s funkcemi data v PHP.

Časové parametry

Parametr Description Příklad
"R" Vrátí celé datum a čas
<?php
echo date("r");
?>
„a“, „A“ Vrací, zda je aktuální čas dopoledne nebo odpoledne, dopoledne nebo odpoledne
<?php
echo date("a");
echo date("A");
?>
„g“, „G“ Vrátí hodinu bez úvodních nul [1 až 12], resp. [0 až 23]
<?php
echo date("g");
echo date("G");
?>
„h“, „H“ Vrátí hodinu s úvodními nulami [01 až 12], [00 až 23] v uvedeném pořadí.
<?php
echo date("h");
echo date("H");
?>
„i“, „s“ Vrátí minuty/sekundy s nulami na začátku [00 až 59]
<?php
echo date("i");
echo date("s");
?>

Parametry dne

Parametr Description Příklad
„D“ Vrátí den v měsíci s úvodními nulami [01 až 31]
<?php
echo date("d");
?>
"j" Vrátí den v měsíci bez úvodních nul [1 až 31]
<?php
echo date("j");
?>
„D“ Vrátí první 3 písmena názvu dne [Ne až So]
<?php
echo date("D");
?>
"L" Vrátí název dne v týdnu [neděle až sobota]
<?php
echo date("l");
?>
"V" Vrátí den v týdnu bez úvodních nul [0 až 6]; neděle je reprezentována nulou (0) až sobota je reprezentována šestkou (6).
<?php
echo date("w");
?>
„Z“ Vrátí den v roce bez úvodních mezer [0 až 365]
<?php
echo date("z");
?>

Parametry měsíce

Parametr Description Příklad
"M" Vrátí číslo měsíce s úvodními nulami [01 až 12]
<?php
echo date("m");
?>
„N“ Vrátí číslo měsíce bez úvodních nul [1 až 12]
<?php
echo date("n");
?>
„M“ Vrátí první 3 písmena názvu měsíce [leden až prosinec]
<?php
echo date("M");
?>
"F" Vrátí název měsíce [leden až prosinec]
<?php
echo date("F");
?>
„T“ Vrátí počet dní v měsíci [28 až 31]
<?php
echo date("t");
?>

Parametry roku

Parametr Description Příklad
"L" Vrací 1, pokud je přestupný rok, a 0, pokud není přestupný rok.
<?php
echo date("L");
?>
„Y“ Vrátí čtyřmístný formát roku
<?php
echo date("Y");
?>
„Y“ Vrátí dvoumístný formát roku (00 až 99)
<?php
echo date("y");
?>

Nejčastější dotazy

date() je jednoduchá procedurální funkce, která formátuje časové razítko. Třída DateTime je objektově orientovaná a podporuje aritmetiku, porovnávání, časová pásma a neměnnost, což ji činí vhodnější pro složitou logiku dat ve větších aplikacích.

Použijte strtotime(), která čte formáty jako '2025-10-13' nebo 'next' Monday' a vrací časové razítko Unixu. Pro striktní parsování známého formátu je DateTime::createFromFormat bezpečnější, protože při neplatném vstupu jednoznačně selže.

Vytvořte dva objekty DateTime a zavolejte funkci diff(), která vrátí DateInterval. Poté můžete číst dny, měsíce nebo roky, například $start->diff($end)->days, abyste získali celkový počet dní mezi daty.

Ano. Popište vstupní a výstupní formát a umělá inteligence dokáže vytvořit kód date(), DateTime nebo strtotime, včetně přidávání intervalů nebo převodu časových pásem. Otestujte to na okrajových případech, jako jsou přestupné roky a konce měsíců.

Ano. Umělá inteligence dokáže rozpoznat chybějící volání date_default_timezone_set, nesoulad časového pásma serveru a zobrazení nebo problémy s letním časem a poté doporučí použití DateTime s explicitními časovými pásmy, aby bylo chování předvídatelné.

Shrňte tento příspěvek takto: