Data si Timpul in PHP 4
PHP are mai multe functii pentru lucru cu Data zilei si Timpul /Ora. Cele mai utilizate sunt acestea:
- date() – transforma Timestamp (denumit si timpul Unix, numarul de secunde de la 1 Ianuarie 1970) intr-un format de data citet /textual.
- time() – Returneaza timpul Unix /Timestamp curent (numarul de secunde de la 1 Ianuarie 1970 pana in prezent).
- microtime() Returneaza timpul Unix /timestamp curent in microsecunde.
- getdate() – Returneaza un array asociativ ce contine informatii despre data si timp.
– Aceste functii permit sa preiei data si timpul de la server in script-ul PHP; ele depind de setarile locale ale serverului.
PHP date()
Functia PHP date() e utilizata pt. formatarea Timestamp in data /timp.
– Sintaxa:
date(„format”, timestamp)
– format – Un sir format din caractere ce reprezinta data returnata. Ex.: „D, d M Y H:i:s” rezulta => „Mon, 15 Aug 2012 15:42:01 +0000„
– timestamp – numarul de secunde de la 1-01-1970 pana la o anumita data. Este optional, daca nu e specificat se foloseste Timestamp-ul curent.
Aceasta functie returneaza un sir cu formatul datei, sau False in caz de eroare.
• O lista cu mai multe functii si exemple de lucru cu data si timpul la pagina: Functii pentru Data si Timp.
– Exemplu, preia data curenta, Zi-Luna-An:
$today = date(‘d-m-Y’);
echo $today;
In mod standard, functia date() foloseste timpul zonal al serverului. Ca sa setati un alt timp zonal, utilizati functia date_default_timezone_set(‘timezone_identifier’), adaugata inainte de alte functii pt data si timp.
Parametrul „timezone_identifier” e un sir cu identificatorul zonei de timp (ex.: ‘America/New_York‘ sau ‘Europe/Bucharest‘). Lista completa de timpuri zonale pt PHP e la pagina: Lista zone de timp pt PHP.
– Exemplu:
<?php
date_default_timezone_set('Europe/Bucharest'); // seteaza timpul zonal pt Romania (Bucuresti)
// returneaza ziua curenta din saptamana
echo date('l');
// returneaza data zilei curente (zi-luna-an)
echo '<br />'. date('j-F-Y');
// returneaza Ora:minute:secunde a timpului curent
echo '<br />'. date('H:i:s');
?>
Rezultat:
Sunday
28-October-2012
07:55:18
In acest exemplu nu e specificat un timestamp, astfel, functia date() lucreaza cu timpul actual, zona Romania /Bucuresti.
Ca sa obtineti timpul Unix /Timestamp-ul curent (numarul de secunde), se utilizeaza functia time() (ex.: $ts = time(); ).
Alte exemple cu functii pentru Data si Timp
Ca sa lucrati cu Timestamp-ul unei anumite date specifice, utilizati functia mktime().
– Sintaxa:
mktime(ore, minute, secunde, luna, zi, an)
Returneaza timpul Unix corespunzator argumentului.
Se poate utiliza si functia strtotime(). Returneaza timpul Unix a sirului din parametru cu data textuala in limba engleza.
– Sintaxa:
strtotime(„timpul”)
– Parametrul „timpul” e un sir /text cu data in limba engleza (ex.: „now„, „+1 Day„, „15 October 2012„, „next Sunday„, etc.).
O lista cu formate valabile e la pagina Formate Data si Timp.
Exemplu cu mktime() ai strtotime():
<?php
// preia Timestamp-ul datei October 15, 1976, 20:38:00 (cu mktime)
// returneaza Timestamp-ul si ziua din saptamana a acestei date
$stamp = mktime(20, 38, 0, 10, 15, 1976);
echo 'Timestamp: '. $stamp;
echo '<br /> October 15, 1976 este '. date('l', $stamp);
// Exemplu cu strtotime()
echo '<br /><br />Exemplu cu strtotime():<br />';
echo '<br /> 15 October 1976, 20:38:00 - '. strtotime('15 October 1976, 20:38:00');
// Alte exemple
echo '<br /> 07 July 1996 - '. strtotime('07 July 1996');
echo '<br /> +3 days - '. strtotime('+3 days');
echo '<br /> +1 one week - '. strtotime('+1 week');
echo '<br /> +1 week 2 days 3 hours 30 seconds - '. strtotime('+1 week 2 days 3 hours 30 seconds');
echo '<br /> next Sunday - '. strtotime('next Sunday');
?>
Acest cod va afisa:
Timestamp: 214252680
October 15, 1976 este Friday
Exemplu cu strtotime():
15 October 1976, 20:38:00 – 214252680
07 July 1996 – 836686800
+3 days – 1300950386
+1 one week – 1301292386
+1 week 2 days 3 hours 30 seconds – 1301476016
next Sunday – 1301176800
Ziua 0 dintr-o luna reprezinta ultima zi din luna precedenta.
De exemplu, ziua 0 din Martie 2012 este „29”, ultima zi din Februarie 2012:
echo date(‘d’, mktime(0, 0, 0, 03, 0, 2012)); // 29
• O alta functie utila pt data si timp e getdate()
– Sintaxa:
getdate(timestamp)
– timestamp – E optional, un numar intreg cu timpul Unix. Daca nu e specificat, foloseste timestamp-ul curent.
getdate() returneaza un array asociativ cu informatii despre data si timpul din „timestamp”, sau cel curent daca nu e specificat.
– Exemplu:
<?php
$now = getdate();
echo '<pre>';
var_export($now);
echo '</pre>';
?>
Acest cod va afisa un array similar cu acesta:
array (
'seconds' => 48,
'minutes' => 30,
'hours' => 9,
'mday' => 21,
'wday' => 1,
'mon' => 3,
'year' => 2011,
'yday' => 79,
'weekday' => 'Monday',
'month' => 'March',
0 => 1300692648,
)
– Exemplu cu microtime() (returneaza timpul Unix /timestamp curent in microsecunde). E util, de exemplu in a afla timpul de executie a unui cod PHP.
– Cod:
<?php
$load_time = -microtime(true);
// instructiuni php
$load_time += microtime(true);
echo $load_time. ' seconds';
?>