Několik funkcí pro práci s datumy v PHP:
Pokud máme proměnnou $retezec ve formátu DD.MM.YYYY, dostaneme z ní jednotlivé položky datumu následujícím způsobem:
$den=substr($retezec,0,2);
$mesic=substr($retezec,3,2);
$rok=substr($retezec,6,4);
Když pak chceme položky spojit do php timestampu, použijeme
$timestamp=mktime(0,0,0,$mesic,$den,$rok);
První tři nuly označují hodiny, minuty, vteriny, takže pokud chceme uložit poslední vteřinu daného dne, použijeme
$timestamp=mktime(23,59,59,$mesic,$den,$rok);
Když pak z timestampu chceme dostat jednotlivé položky zpátky, dostaneme je následujícím způsobem (promenna $vyber_start_timestamp je datum v timestamp formatu:
$datum=strftime(“%D, %T”,$vyber_start_timestamp); (datum ve formátu MM/DD/YYYY HH:MM:SS)
$datum2=date(“d M,Y”,$timestamp); (datum ve formátu DD Mesic zkratka slovne, YYYY)
$rok=strftime(“%Y”,$vyber_start_timestamp);
$mesic=strftime(“%m”,$vyber_start_timestamp);
$kolikatyho=date(“d”,$vyber_start_timestamp);
$tyden=strftime(“%W”,$vyber_start_timestamp);
Ostatní formátovací znaky funkce date() jsou:
y … rok jako dvojčíslí (00)
Y … rok jako čtyřčíslí (2000)
L … 0 (nepřestupný rok) nebo 1 (přestupný rok)
z … číslo dne v roce (001-365)
m … číslo měsíce (01-12)
n … číslo měsíce (bez případné úvodní nuly, 1-12)
M … anglická zkratka názvu měsíce (Jul)
F … anglický název měsíce (July)
d … číslo dne v měsíci (01-31)
j … číslo dne v měsíci (bez případné úvodní nuly, 1-31)
t … počet dní v daném měsíci (28-31)
S … anglická koncovka čísla dne v měsíci (st, nd, rd, th)
D … anglická zkratka názvu dne v týdnu (Mon)
l … anglický název dne v týdnu (Monday)
w … číslo dne v týdnu (0-6 nebo 1-7 v závislosti na verzi PHP – neděle má číslo 0 nebo 7)
h … hodiny (01-12)
g … hodiny (bez případné úvodní nuly, 1-12)
H … hodiny (01-23)
G … hodiny (bez případné úvodní nuly, 1-23)
a … am/pm (dopoledne/odpoledne)
A … AM/PM (dopoledne/odpoledne)
i … minuty (00-59)
s … sekundy (00-59)
U … počet sekund od 1. ledna 1970
W … číslo týdne podle ISO-8601