Datum a čas
Pro práci s datem a časem se používají dvě hlavní funkce.
Funkce time() Funkce date()
Pro svou činnost tyto funkce používají počet sekund, které uplynuly od 1. ledna 1970.
UNIXová časová známka
Číslu obsahující počet vteřin od 1. ledna 1970 se říká Unixová časová známka.
Tato známka je používána jako formát pro práci s časem.
Pro převod datumu a času na časovou známku, můžeme použít funkci mktime().
mktime (hodiny, minuty, sekundy, měsíc, den, rok)
Funkce time
<?echo(time());
?>
Transformace data a času
<?$datum = strftime("%d/%m/%Y", time()); echo($datum);
?>
Parametry funkce strftime
ParametrPopis (možná hodnota)
%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
Parametry funkce strftimeParametr Popis (možná hodnota)
%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
strftime x čeština
Pro české pojmenování lze použít následující funkci: SetLocale(LC_ALL, "Czech"):
<?setlocale(LC_ALL, "Czech");$datum = strftime("%d/%m/%Y - %A", time());
echo($datum);?>
Funkce date
date("parametr", time()) - funkce k získání a naformátování data a času. Pokud nezadáte funkci time, dosadí se aktuální datum a čas.
Všechny parametry převádí na evropské standardy.
<?$datum = date ("j. m. Y");echo $datum;
?>
Parametry funkce date
ParametrPopis (možná hodnota)
Y Rok - čtyřčíslíy Rok jako dvojčíslíM zkratka jména měsícem číslo měsíce (01-12)F jméno měsíceD zkratka dne v týdnul jméno dne v týdnuw čí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)
Parametry funkce date
Parametr Popis (možná hodnota)H hodina (00-23)h hodina (01-12)i minuta (00-59)s sekunda (00-59)U počet sekund od 1.1.1970
Sanglická koncovka pořadového čísla dne v měsíci
A dopoledne/odpoledne (AM/PM)a dopoledne/odpoledne (am/pm)
Příklad
Vytvořte program, který ze zadaného data narození vypočte věk.
Výsledek uveďte v letech.
Řešení<?
$den=13;$mesic=10;$rok=1965;$znamkanarozeni=mktime(0,0,0,$mesic,$den,$rok);$znamkadnesek=mktime();
$vteriny=$znamkadnesek-$znamkanarozeni;
$vek=($vteriny/(60*60*24*365.25));$rok=floor($vek);//zaokrouhlení na nejbližší nejnižší celé čísloecho "Je Vám ".$rok." let";
?>
Otázky k opakování
1. Jaké dvě hlavní funkce se používají pro práci s datem a časem?
2. Co je to Unixová časová známka?3. K jakým účelům se používá příkaz "mktime"?4. Jakým způsobem se vypíše aktuální datum?
Použité zdroje BLÁBOLIL, R. Informační a komunikační technologie. 3. rozšířené
vydání. České Budějovice: KOPP, 2011. str. 407
Použité obrázky: Vlastní