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 Popis (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 strftime 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 %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 Parametr Popis (možná hodnota) Y Rok - čtyřčíslí 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)
Parametry funkce date Parametr Popis (možná hodnota) H hodina (00-23) 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)
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é číslo echo "Je Vám ".$rok." let"; ?>
Otázky k opakování Jaké dvě hlavní funkce se používají pro práci s datem a časem? Co je to Unixová časová známka? K jakým účelům se používá příkaz "mktime"? 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í