PHP - Data e ora
Le date fanno così tanto parte della vita quotidiana che diventa facile lavorarci senza pensarci. PHP fornisce anche potenti strumenti per l'aritmetica delle date che facilitano la manipolazione delle date.
Ottenere il timestamp con l'ora ()
PHP time()la funzione fornisce tutte le informazioni necessarie sulla data e l'ora correnti. Non richiede argomenti ma restituisce un numero intero.
Il numero intero restituito da time () rappresenta il numero di secondi trascorsi dalla mezzanotte GMT del 1 gennaio 1970. Questo momento è noto come epoca UNIX e il numero di secondi trascorsi da allora viene indicato come timestamp.
<?php
print time();
?>
Questo produrrà il seguente risultato:
1480930103
Questo è qualcosa di difficile da capire. Ma PHP offre strumenti eccellenti per convertire un timestamp in una forma con cui gli esseri umani si sentono a proprio agio.
Conversione di un timestamp con getdate ()
La funzione getdate()opzionalmente accetta un timestamp e restituisce un array associativo contenente informazioni sulla data. Se si omette il timestamp, funziona con il timestamp corrente restituito da time ().
La tabella seguente elenca gli elementi contenuti nell'array restituito da getdate ().
Suor n | Chiave e descrizione | Esempio |
---|---|---|
1 | seconds Secondi dopo i minuti (0-59) |
20 |
2 | minutes Minuti dopo l'ora (0-59) |
29 |
3 | hours Ore del giorno (0-23) |
22 |
4 | mday Giorno del mese (1 - 31) |
11 |
5 | wday Giorno della settimana (0 - 6) |
4 |
6 | mon Mese dell'anno (1-12) |
7 |
7 | year Anno (4 cifre) |
1997 |
8 | yday Giorno dell'anno (0-365) |
19 |
9 | weekday Giorno della settimana |
giovedi |
10 | month Mese dell'anno |
gennaio |
11 | 0 Timestamp |
948370048 |
Ora hai il controllo completo su data e ora. Puoi formattare la data e l'ora in qualsiasi formato desideri.
Esempio
Prova il seguente esempio
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val<br />";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "/";
$formated_date .= $date_array['mon'] . "/";
$formated_date .= $date_array['year'];
print $formated_date;
?>
Questo produrrà il seguente risultato:
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
Conversione di un timestamp con data ()
Il date()restituisce una stringa formattata che rappresenta una data. Puoi esercitare un enorme controllo sul formato restituito da date () con un argomento stringa che devi passare ad esso.
date(format,timestamp)
La data () accetta facoltativamente un timestamp, se omesso, verranno utilizzate la data e l'ora correnti. Qualsiasi altro dato che includi nella stringa di formato passata a date () verrà incluso nel valore restituito.
La tabella seguente elenca i codici che una stringa di formato può contenere:
Suor n | Formato e descrizione | Esempio |
---|---|---|
1 | a "am" o "pm" minuscolo |
pm |
2 | A "AM" o "PM" maiuscolo |
PM |
3 | d Giorno del mese, un numero con zeri iniziali |
20 |
4 | D Giorno della settimana (tre lettere) |
Gio |
5 | F Nome del mese |
gennaio |
6 | h Ora (formato 12 ore - zeri iniziali) |
12 |
7 | H Ora (formato 24 ore - zeri iniziali) |
22 |
8 | g Ora (formato 12 ore - senza zeri iniziali) |
12 |
9 | G Ora (formato 24 ore - senza zeri iniziali) |
22 |
10 | i Minuti (0-59) |
23 |
11 | j Giorno del mese (senza zeri iniziali |
20 |
12 | l (Lower 'L') Giorno della settimana |
giovedi |
13 | L Anno bisestile ("1" per sì, "0" per no) |
1 |
14 | m Mese dell'anno (numero - zeri iniziali) |
1 |
15 | M Mese dell'anno (tre lettere) |
Jan |
16 | r La data formattata RFC 2822 |
Gio, 21 dicembre 2000 16:01:07 +0200 |
17 | n Mese dell'anno (numero - senza zeri iniziali) |
2 |
18 | s Secondi d'ora |
20 |
19 | U Timestamp |
948372444 |
20 | y Anno (due cifre) |
06 |
21 | Y Anno (quattro cifre) |
2006 |
22 | z Giorno dell'anno (0-365) |
206 |
23 | Z Offset in secondi dal GMT |
+5 |
Esempio
Prova il seguente esempio
<?php
print date("m/d/y G.i:s<br>", time());
echo "<br>";
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
Questo produrrà il seguente risultato:
12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am
Spero che tu abbia una buona comprensione su come formattare la data e l'ora in base alle tue esigenze. Come riferimento, un elenco completo di tutte le funzioni di data e ora è fornito in Funzioni data e ora di PHP.