Forum und email

date

(PHP 4, PHP 5)

date — Formatează data/timpul local

Descriere

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

Returnează un şir formatat conform cu formatul transmis ca parametru al funcţiei, utilizând întregul timestamp sau timpul local dacă nu este utilizat parametrul timestamp .

Notă: Perioada validă a timestamp este cuprinsă, de regulă, între vineri, 13 Decembrie 1901 20:45:54 GMT şi marţi, 19 ianuarie 2038 03:14:07 GMT. (Acestea sunt datele care corespund minimului, respectiv maximului unui întreg cu semn reprezentat pe 32 de biţi.)
Pentru a genera un timestamp dintr-un şir reprezentând o dată, puteţi utiliza funcţia strtotime(). De asemenea, unele sisteme de gestiune a bazelor de date au funcţii care pot converti formatul lor de dată în timestamps (cum ar fi funcţia MySQL UNIX_TIMESTAMP).

Următoarele caractere sunt recunoscute în şirul format :

  • a - "am" sau "pm"
  • A - "AM" sau "PM"
  • B - timpul Swatch Internet
  • d - ziua din lună, 2 cifre cu zero iniţial; de exemplu "01" to "31"
  • D - ziua din săptămână, în engleză, textual, 3 litere; de exemplu "Fri"
  • F - month, textual, long; de exemplu "January"
  • g - ora, format de 12 ore, fără zero iniţial; de exemplu "1" până la "12"
  • G - ora, format de 24 de ore, fără zero iniţial; de exemplu "0" până la "23"
  • h - ora, format 12 ore, cu zero iniţial; de exemplu "01" până la "12"
  • H - ora, format 24 de ore, cu zero iniţial; de exemplu "00" până la "23"
  • i - minute, cu zero iniţial; de exemplu "00" până la "59"
  • I (litera i majusculă) - "1" ora de vară, "0" în caz contrar.
  • j - ziua din lună, fără zero iniţial; de exemplu "1" până la "31"
  • l (litera 'L' minusculă) - ziua din săptămână, textual, în engleză, scurt; de exemplu "Friday"
  • L - valoare booleană pentru anii bisecţi; de exemplu "0" dacă nu e an bisect sau "1" dacă este an bisect
  • m - luna, cu zero iniţial; de exemplu "01" până la "12"
  • M - luna, textual, în engleză, 3 litere; de exemplu "Jan"
  • n - luna fără zero iniţial; de exemplu "1" până la "12"
  • O - diferenţa până la ora Greenwich în ore; de exemplu "+0200"
  • r - data formatată conform recomandării RFC 822; de exemplu "Thu, 21 Dec 2000 16:01:07 +0200" (adăugată în PHP 4.0.4)
  • s - secunde; de exemplu "00" până la "59"
  • S - sufixul ordinal englezesc pentru ziua din lună, 2 caractere; de exemplu "th", "nd"
  • t - numărul de zile dintr-o lună dată; de exemplu "28" până la "31"
  • T - setările de reprezentare a timpului pe un calculator; de exemplu "MDT"
  • U - secunde de la începutul epocii UNIX
  • w - ziua din săptămână, numerică, de exemplu "0" (duminică) până la "6" (sâmbătă)
  • W - numărul săptămânii din an conform ISO-8601; săptămâna începe lunea (adăugată în PHP 4.1.0)
  • Y - anul, 4 cifre; de exemplu "1999"
  • y - anul, 2 cifre; de exemplu "99"
  • z - ziua din an; de exemplu "0" până la "365"
  • Z - diferenţa de timp faţă de UTC, în secunde (de exemplu "-43200" până la "43200"). Diferenţele pentru zonele aflate la vest de UTC sunt întotdeauna negative şi celelalte sunt întotdeauna pozitive.
Caracterele nerecunoscute din format vor fi afişate ca atare. Formatul "Z" va returna întotdeauna "0" când se foloseşte gmdate().

Example#1 Exemplu date()

echo date ("l dS of F Y h:i:s A");
echo "July 1, 2000 este într-o zi de " . date ("l", mktime(0,0,0,7,1,2000));

Puteţi preveni expandarea unui caracter de formatare precedându-l cu un backslash. Dacă astfel ia naştere un caracter escape predefinit este necesară adăugarea încă unui backslash.

Example#2 Caractere escape în funcţia date()

echo date("l \e\s\\t\e \i\\n j"); // va afişa ceva de genul 'Saturday este in 8'

Este posibil să utilizaţi funcţiile date() şi mktime() împreună pentru a găsi date în viitor sau în trecut.

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

$miine = mktime (0,0,0,date("m")  ,date("d")+1,date("Y"));
$luna_trecuta = mktime (0,0,0,date("m")-1,date("d"),  date("Y"));
$anul_viitor = mktime (0,0,0,date("m"),  date("d"),  date("Y")+1);

Notă: Această modalitate de găsire a datelor din trecut sau viitor este mai demnă de încredere decât simpla adăugare sau scădere de secunde la un timestamp, datorită orei de vară.

Câteva exemple de formatare a datei utilizând funcţia date(). Este recomandat să faceţi escape la toate caracterele din şirul de formatare pe care nu doriţi ca funcţia să le expandeze, precum şi la cele care momentan nu au o semnificaţie, din cel puţin două motive: pot apărea rezultate neaşteptate; alte caractere pot avea o semnificaţie în versiuni viitoare ale PHP. Când faceţi escape ţineţi cont că unele caractere (n, t) capătă semnificaţii speciale. Pentru a preveni acest lucru utilizaţi apostroful pentru încadrarea şirului de formatare.

Example#4 Formatare cu funcţia date()

/* Today is March 10th, 2001, 5:16:18 pm */
$azi = date("F j, Y, g:i a");                   // March 10, 2001, 5:16 pm
$azi = date("m.d.y");                           // 03.10.01
$azi = date("j, n, Y");                         // 10, 3, 2001
$azi = date("Ymd");                             // 20010310
$azi = date('h-i-s, j-m-y, it is w Day z ');    // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$azi = date('\e\s\t\e \z\i\u\a \d\e j.');       // este ziua de 10.
$azi = date("D M j G:i:s T Y");                 // Sat Mar 10 15:16:08 MST 2001
$azi = date('H:m:s \l \e\s\t\e \l\u\n\a');      // 17:03:17 l este luna
$azi = date("H:i:s");                           // 17:16:17

Pentru a formata datele în alte limbi trebuie să utilizaţi funcţiile setlocale() şi strftime().

Vezi, de asemenea, getlastmod(), gmdate(), mktime(), strftime() şi time().