(PHP 4, PHP 5)
date — Formatta una data o orario locale
$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().
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'.
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().
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
.
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()
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 |
5.1.1 |
Ci sono delle costanti utili
dei formati di data/ora standard che possono essere usate per specificare il
parametro format .
|
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(0, 0, 0, 7, 1, 2000));
/* 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_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
È 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(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("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().
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).
Il timestamp dell'inizio della richiesta è disponibile in $_SERVER['REQUEST_TIME'] da PHP 5.1.