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';
?>