Funcții de Dată/Timp
PHP Manual

date

(PHP 4, PHP 5, PHP 7)

dateFormatează o oră/dată

Descrierea

string date ( string $format [, int $timestamp = time() ] )

Întoarce un string formatat în conformitate cu string-ul de formatare dat, utilizând timestamp-ul întreg dat, sau data și ora curentă dacă nu este furnizat nici un timestamp. Cu alte cuvinte, timestamp este opțional și implicit are valoarea întoarsă de time().

Parametri

format

Reprezintă formatul string-ului din care se obține data la ieșire. Vedeți opțiunile de formatare de mai jos. Există de asemenea și câteva constante predefinite ale datelor ce pot fi utilizate în loc, deci spre exemplu DATE_RSS conține șirul de formatare 'D, d M Y H:i:s'.

Următoarele caractere sunt recunoscute în parametrul format
Caracterul de format Descriere Exemple de valori întoarse
Ziua --- ---
d Ziua lunii, 2 cifre cu zero la început De la 01 până la 31
D Reprezentarea textuală a zilei în limba engleză, trei litere De la Mon până la Sun
j Ziua lunii fără zero la început De la 1 până la 31
l (litera minusculă 'L') Reprezentarea textuală deplină a zilei săptămânii în limba engleză De la Sunday până la Saturday
N Reprezentarea numerică a zilei săptămânii conform standardului ISO-8601 (adăugat în PHP 5.1.0) De la 1 (pentru Luni) până la 7 (pentru Duminică)
S Sufixul ordinal al zilei din lună în limba engleză, 2 caractere st, nd, rd sau th. Funcționează bine cu j
w Reprezentarea numerică a zilei săptămânii De la 0 (pentru Duminică) până la 6 (pentru Sâmbătă)
z Ziua anului (începând de la 0) De la 0 până la 365
Săptămâna --- ---
W Numărul săptămânii în an conform standardului ISO-8601, săptămânile încep Luni (adăugat în PHP 4.1.0) Exemplu: 42 (a 42-a săptămână a anului)
Luna --- ---
F Reprezentarea textuală deplină a lunii în limba engleză De la January până la December
m Reprezentarea numerică a lunii, cu zero la început De la 01 până la 12
M Reprezentarea textuală prescurtată a lunii în limba engleză, trei litere De la Jan până la Dec
n Reprezentarea numerică a lunii, fără zero la început De la 1 până la 12
t Numărul de zile în luna dată De la 28 până la 31
Anul --- ---
L Indică dacă anul este bisect 1 dacă anul este bisect, 0 în caz contrar.
o Reprezentarea numerică a anului conform standardului ISO-8601. Aceasta are aceeași valoare ca și Y, cu excepția că dacă numărul săptămânii după ISO (W) aparține anului precedent sau următor, acel an este considerat în loc. (adăugat în PHP 5.1.0) Exemple: 1999 sau 2003
Y Reprezentarea numerică deplină a anului, 4 cifre Exemple: 1999 sau 2003
y Reprezentarea din două cifre a anului Exemple: 99 sau 03
Ora --- ---
a Ante meridiem sau Post meridiem cu litere minuscule am sau pm
A Ante meridiem sau Post meridiem cu litere majuscule AM sau PM
B Ora Swatch Internet De la 000 până la 999
g Reprezentarea orei în format de 12 ore, fără zero la început De la 1 până la 12
G Reprezentarea orei în format de 24 ore, fără zero la început De la 0 până la 23
h Reprezentarea orei în format de 12 ore, cu zero la început De la 01 până la 12
H Reprezentarea orei în format de 24 ore, cu zero la început De la 00 până la 23
i Minutele cu zero la început De la 00 până la 59
s Secundele cu zero la început De la 00 până la 59
u Microsecundele (adăugat în PHP 5.2.2). Atrageți atenția că date() întotdeauna va genera 000000, deoarece ea primește un parametru integer, iar metoda DateTime::format() susține microsecundele dacă DateTime a fost creată cu microsecunde. Exemplu: 654321
Fusul orar --- ---
e Identificatorul fusului orar (adăugat în PHP 5.1.0) Exemple: UTC, GMT, Atlantic/Azores
I (litera majusculă i) Determină dacă este activ timpul de vară 1 dacă este activ timpul de vară, 0 în caz contrar.
O Diferența față de ora Greenwich (GMT) în ore Exemplu: +0200
P Diferența față de ora Greenwich (GMT) cu două puncte între ore și minute (adăugat în PHP 5.1.3) Exemplu: +02:00
T Abreviatura fusului orar Exemple: EST, MDT ...
Z Deplasamentul în secunde a fusului orar. Deplasamentul fuselor orare dinspre Vest de UTC este întotdeauna negativ, iar a celor dinspre Est de UTC este întotdeauna pozitiv. De la -43200 până la 50400
Data/Ora deplină --- ---
c Data în reprezentare ISO 8601 (adăugată în PHP 5) 2004-02-12T15:19:21+00:00
r Data formatată conform » RFC 2822 Exemplu: Thu, 21 Dec 2000 16:01:07 +0200
U Secunde de la Epoca Unix (1 Ianuarie 1970 00:00:00 GMT) Vezi de asemenea time()

Caracterele nerecunoscute din string-ul de formatare vor fi afișate așa cum sunt. Formatul Z întotdeauna va întoarce 0 la utilizarea gmdate().

Notă:

Deoarece această funcție acceptă doar timestamp-uri integer, caracterul de formatare u este util doar când se utilizează funcția date_format() cu timestamp-uri ale utilizatorului create cu date_create().

timestamp

Parametrul opțional timestamp este un integer și este un moment de timp Unix și are valoarea implicită a orei locale, dacă parametrul timestamp nu este indicat. Cu alte cuvinte, valoarea implicită este cea a funcției time().

Valorile întoarse

Întoarce un string cu dată formatat. Dacă este utilizată o valoare non-numerică pentru timestamp, este întors FALSE și este emisă o eroare de nivel E_WARNING.

Erori/Excepții

Fiecare apel al unei funcții de dată/oră va genera o E_NOTICE dacă zona orară nu este validă și/sau un mesaj E_STRICT sau E_WARNING dacă se utilizează setările sistemului sau variabila de mediu TZ. Vedeți de asemenea date_default_timezone_set()

Istoricul schimbărilor

Versiune Descriere
5.1.0 Domeniul valid al unui timestamp este de obicei de la Fri, 13 Dec 1901 20:45:54 GMT până la Tue, 19 Jan 2038 03:14:07 GMT. (Acestea sunt datele ce corespund valorilor minimă și maximă pentru un întreg cu semn pe 32 de biți). Însă înainte de PHP 5.1.0 acest domeniu era limitat de la 01-01-1970 până la 19-01-2038 pe unele sisteme (de ex. Windows).
5.1.0

Acum generează erori ale zonei orare de tip E_STRICT și E_NOTICE.

5.1.1 Există constante utile pentru formate standarde de date/ore, ce pot fi utilizate pentru a specifica parametrul format.

Exemple

Example #1 Exemple date()

<?php
// Stabilește fusul orar implicit. Disponibil începând cu PHP 5.1
date_default_timezone_set('UTC');

// Afișează ceva de felul: Monday
echo date("l");

// Afișează ceva de felul: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Afișează: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

/* utilizarea constantelor în parametrul format */
// Afișează ceva de felul: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// Afișează ceva de felul: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

Puteți preveni ca un caracter recunoscut în string-ul de formatare să fie expandat prin prefixarea lui cu un backslash. Dacă caracterul cu backslash de acum este o secvență specială, va trebui de asemenea să prefixați backslash-ul.

Example #2 Evadarea caracterelor în date()

<?php
// Afișează ceva de felul: Wednesday the 15th
echo date('l \t\h\e jS');
?>

Este posibil de utilizat date() și mktime() împreună pentru a afla date din trecut sau viitor.

Example #3 Exemplu date() și mktime()

<?php
$tomorrow  
mktime(000date("m")  , date("d")+1date("Y"));
$lastmonth mktime(000date("m")-1date("d"),   date("Y"));
$nextyear  mktime(000date("m"),   date("d"),   date("Y")+1);
?>

Notă:

Aceasta poate fi mai sigur decât simpla adăugare sau scădere a numărului de secunde în zi sau lună la un timestamp din cauza timpului de vară.

Unele exemple de formatare date(). Observați că trebuie să evadați caracterele suplimentare, deoarece cele ce au o însemnătate specială vor produce rezultate nedorite, iar celelalte caractere pot căpăta o însemnătate specială în versiunile viitoare ale PHP. Când evadați, aveți grijă să utilizați ghilimele singulare pentru a preveni caractere ca \n să devină newline.

Example #4 Formatarea date()

<?php
// Presupunem că astăzi este: March 10th, 2001, 5:16:18 pm
// și ne aflăm în fusul orar Mountain Standard Time (MST)

$today date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today date("m.d.y");                         // 03.10.01
$today date("j, n, Y");                       // 10, 3, 2001
$today date("Ymd");                           // 20010310
$today date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today date("H:i:s");                         // 17:16:18
$today date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (formatul MySQL DATETIME)
?>

Pentru a formata date în alte limbi, trebuie să utilizați funcțiile setlocale() și strftime() în loc de date().

Note

Notă:

Pentru a genera un timestamp dintr-o reprezentare string a datei, puteți utiliza strtotime(). În plus, unele baze de date au funcții pentru a converti formatele lor de date în timestamp-uri (cum ar fi funcția » UNIX_TIMESTAMP la MySQL).

Sfat

Timestamp-ul începutului interpelării este disponibil în variabila $_SERVER['REQUEST_TIME'] începând cu PHP 5.1.

A se vedea și


Funcții de Dată/Timp
PHP Manual