Date/Time Funzioni
PHP Manual

date

(PHP 4, PHP 5)

dateFormatta una data o orario locale

Descrizione

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

Restituisce una stringa formattata in accordo con il formato della stringa data usando l'intero timestamp dato o l'orario corrente se nessun timestamp è dato. In altre parole, timestamp è opzionale e di default prende il valore di time().

Elenco dei parametri

format

Il formato della data da produrre come string. Vedere le opzioni di formattazione sottostanti. Ci sono anche tante costanti delle date predefinite che possono essere usate al loro posto, così per esempio DATE_RSS contiene la stringa dal formato 'D, d M Y H:i:s'.

I seguenti caratteri sono riconosciuti nel parametro stringa format
Carattere del format Descrizione Esempio di valori restituiti
Giorno --- ---
d Giorno del mese, 2 cifre con zero iniziali 01 a 31
D Una rappresentazione testuale di un giorno, tre lettere Mon a Sun
j Giorno del mese senza gli zero iniziali 1 a 31
l ('L' minuscola) Una rappresentazione testuale completa del giorno della settimana Sunday a Saturday
N Rappresentazione numerica ISO-8601 del giorno della settimana (aggiunto in PHP 5.1.0) 1 (per Lunedì) a 7 (per Domenica)
S Suffisso ordinale inglese per il giorno del mese, 2 caratteri st, nd, rd o th. Funziona bene con j
w Rappresentazione numerica del giorno della settimana 0 (per Domenica) a 6 (per Sabato)
z Il giorno dell'anno (partendo da 0) 0 a 365
Settimana --- ---
W Numero della settimana dell'anno ISO-8601, le settimane iniziano di Lunedì (aggiunto in PHP 4.1.0) Esempio: 42 (la 42esima settimana nell'anno)
Mese --- ---
F Una rappresentazione testuale completa di un mese, come January o March January a December
m Rappresentazione numerica di un mese, con gli zero iniziali 01 a 12
M Una piccola rappresentazione testuale di un mese, tre lettere Jan a Dec
n Rappresentazione numerica di un mese, senza gli zero iniziali 1 a 12
t Numero di giorni nel dato mese 28 a 31
Anno --- ---
L Se si tratta di un anno bisestile 1 se è un anno bisestile, 0 in caso contrario.
o Il numero dell'anno ISO-8601. Questo ha lo stesso valore di Y, eccetto che se il numero della settimana ISO (W) appartiene all'anno precedente o successivo, viene invece utilizzato quell'anno. (aggiunto in PHP 5.1.0) Esempi: 1999 o 2003
Y Una rappresentazione numerica completa di un anno, 4 cifre Esempi: 1999 o 2003
y Una rappresentazione a due cifre di un anno Esempi: 99 o 03
Orario --- ---
a Ante meridiem e Post meridiem in minuscole am o pm
A Ante meridiem e Post meridiem in maiuscole AM o PM
B Orario di Internet Swatch 000 a 999
g Formato a 12 ore di un'ora senza gli zero iniziali 1 a 12
G Formato a 24 ore di un'ora senza gli zero iniziali 0 a 23
h Formato a 12 ore di un'ora con gli zero iniziali 01 a 12
H Formato a 24 ore di un'ora con gli zero iniziali 00 a 23
i Minuti con gli zero iniziali 00 a 59
s Secondi, con gli zero iniziali 00 a 59
u Microsecondi (aggiunto in PHP 5.2.2). Notare che date() genererà sempre 000000 dato che prende un parametro integer, mentre DateTime::format() supporta i microsecondi. Esempio: 654321
Fuso orario --- ---
e Identificatore del fuso orario (aggiunto in PHP 5.1.0) Esempi: UTC, GMT, Atlantic/Azores
I (i maiuscola) Se la data è o no in ora legale 1 se è ora legale, 0 in caso contrario.
O Differenza dall'ora di Greenwich (GMT) in ore Esempio: +0200
P Differenza dall'ora di Greenwich (GMT) con due punti tra ore e minuti (aggiunto in PHP 5.1.3) Esempio: +02:00
T Abbreviazione del fuso orario Esempio: EST, MDT ...
Z Differenza del fuso orario in secondi. La differenza per i fusi orari ad ovest di UTC è sempre negativa, e per quelli all'est di UTC è sempre positiva. -43200 a 50400
Data/Ora Completa --- ---
c Data ISO 8601 (aggiunta in PHP 5) 2004-02-12T15:19:21+00:00
r Data formattata in » RFC 2822 Esempio: Thu, 21 Dec 2000 16:01:07 +0200
U Il numero di secondi dalla Unix Epoch (Gennaio 1 1970 00:00:00 GMT) Vedere anche time()

I caratteri non riconosciuti nella stringa formato saranno stampati così come sono. Il formato Z restituirà sempre 0 quando si utilizza gmdate().

Nota:

Poichè questa funzione accetta solo timestamp integer il carattere di formato u è utile solo quando si utilizza la funzione date_format() con i timestamp basati sull'utente creati con date_create().

timestamp

Il parametro opzionale timestamp è un integer timestamp Unix che ha come default l'ora locale attuale se un timestamp non è fornito. In altre parole, ha come default il valore di time().

Valori restituiti

Restituisce una stringa data formattata. Se viene utilizzato un valore non numerico per timestamp, viene restituito FALSE e viene emesso un errore di livello E_WARNING.

Errori/Eccezioni

Ogni chiamata a una funzione data/ora genera un E_NOTICE se il time zone non è valido, e/o un messaggio E_STRICT o E_WARNING se si usano le impostazioni di sistema o la variabile d'ambiente TZ. Vedere anche date_default_timezone_set()

Log delle modifiche

Versione Descrizione
5.1.0 L'intervallo valido di un timestamp è tipicamente da Ven, 13 Dec 1901 20:45:54 GMT a Mar, 19 Gen 2038 03:14:07 GMT. (Queste sono le date che corrispondono al valore minimo e massimo per un intero con segno a 32-bit). Tuttavia, prima di PHP 5.1.0 questo intervallo era limitato da 01-01-1970 a 19-01-2038 su alcuni sistemi (es. Windows).
5.1.0

Ora emette gli errori time zone E_STRICT e E_NOTICE

5.1.1 Ci sono delle costanti utili dei formati di data/ora standard che possono essere usate per specificare il parametro format.

Esempi

Example #1 Esempi di date()

<?php
// imposta il fuso orario di default da utilizzare. Disponibile da PHP 5.1
date_default_timezone_set('UTC');


// Stampa qualcosa di simile a: Monday
echo date("l");

// Stampa qualcosa di simile a: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Stampa: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

/* usa le costanti nel parametro format */
// stampa qualcosa di simile a: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// stampa qualcosa di simile a: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(000712000));
?>

È possibile evitare che un carattere riconosciuto nella stringa formato venga espanso effettuando l'escape di esso anteponendo un backslash. Se il carattere con un backslash è già una sequenza speciale, potrebbe essere necessario effettuare l'escape anche del backslash.

Example #2 Effettuare l'escape dei caratteri in date()

<?php
// stampa qualcosa di simile a: Wednesday the 15th
echo date('l \t\h\e jS');
?>

È possibile utilizzare insieme date() e mktime() per trovare date nel futuro o nel passato.

Example #3 Esempio di date() e di 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);
?>

Nota:

Questo può essere più affidabile rispetto che semplicemente aggiungere o sottrarre il numero di secondi in un giorno o in un mese ad un timestamp a causa dell'ora legale.

Alcuni esempi della formattazione date(). Notare che si dovrebbe effettuare l'escape di qualsiasi altro carattere, come tutti quelli che attualmente hanno un significato speciale produrranno risultati indesiderati, e ad altri caratteri potrebbe essere assegnato un significato nelle versioni future di PHP. Quando si effettua l'escape, assicurarsi di usare gli apici singoli in modo da evitare che i caratteri come \n divengano nuove linee.

Example #4 Formattazione di date()

<?php
// Assumendo che oggi sia Il 10 Marzo, 2001, 5:16:18 pm, e che noi siamo nel
// Fuso Orario 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 (the MySQL DATETIME format)
?>

Per formattare le date in altri lingue, si dovrebbero utilizzare le funzioni setlocale() e strftime() al posto di date().

Note

Nota:

Per generare un timestamp da una stringa che rappresenta la data, si può essere in grado di utilizzare strtotime(). Inoltre, alcuni database hanno delle funzioni per convertire i loro formati data in timestamp (come la funzione » UNIX_TIMESTAMP di MySQL).

Suggerimento

Il timestamp dell'inizio della richiesta è disponibile in $_SERVER['REQUEST_TIME'] da PHP 5.1.

Vedere anche:


Date/Time Funzioni
PHP Manual