Lucrul cu tipul data in PHP nu este foarte complicat insa are citeva aspecte. Functiile referitoare la date sint: checkdate , date , getdate , gettimeofday , gmdate , gmmktime , gmstrftime , localtime , microtime , mktime , strftime , strtotime , time. Vedeti descrierea lor in manual cu paramaterii care ii au. Dupa cum vedeti nu sint foarte multe insa suficiente pentru majoritatea lucrurilor necesare.
Nu exista o functie la fel ca in VBScript DateAdd() care sa adauge sau sa scada o valoare dintr-o data existenta. Pentru asta vedeti functia de mai jos:Cod: |
function DateAdd($v,$d=null , $f="d/m/Y"){ $d=($d?$d:date("Y-m-d")); return date($f,strtotime($v." days",strtotime($d))); } |
Aceasta este facuta sa functioneze pentru a aduna sau scadea zile, nu ore sau alte elemente ale datei. Se apeleaza simplu: echo DateAdd(2);
O sa afiseze data de peste 2 zile, in formatul zi/luna/an. Daca doriti sa afisati data incepind cu o alta referinta nu ziua curenta se folsoeste asa: echo DateAdd(-4,"05/05/2005");
O sa afiseze "01/05/2005", adica cu 4 zile in urma datei specificate.
Daca doriti sa schimbati formatul se poate face asa:
echo DateAdd(1,"05/05/2005","Y-m-d");
Sau pentru a folosi data curenta cu alt format se poate folosi:
echo DateAdd(1,0,"Y-m-d");
O alta functie utila prezenta in VBScript este DateDiff() care calculeaza diferenta intre 2 date in zile, ore, minute, etc. Dau mai jos o astfel de functie si pt. PHP:
Cod: |
function DateDiff($d1,$d2,$f="d") { switch($f) { case "h": return intval((strtotime($d1)-strtotime($d2))/3600); break; case "m": return intval((strtotime($d1)-strtotime($d2))/60); default: return intval((strtotime($d1)-strtotime($d2))/86400); break; } } |
Apoi se apeleaza simplu:
echo DateDiff("2005-05-05","2005-05-01"); // numar de zile: 4
echo DateDiff("2005-05-05 05:00","2005-05-01 06:00","h"); // numar de ore
echo DateDiff("2005-05-05 05:00","2005-05-01 06:00","m"); // numar de minute
Dupa cum vedeti e destul de simplu de manevrat informatiile de tip data si in PHP chiar daca uneori avem nevoie de functii construite de noi (sau altii :) ).