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.