RicH and FamouS

       Home         Glosar IT                                                                                                                                                                                                              SUBSCRIBE NOW!
        

03.04.2009

Lucrul cu date in PHP

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 :) ).

    Blog din Moldova    FastCounter 

 
Copyright © 2008-2010 Foster1. All rights reserved.