Visita Orebla.it su Facebook Segui Orebla.it su Twitter Vedi i video su YouTube di Orebla.it Unisciti alle cerchie di Orebla.it
DOVE TI TROVI: \\ Home Page\php\Gestire Data e Ora con PHP :: Guida al PHP

Imparare il PHP: Date e Orari

autore: Orebla
xx/xx/xx

Gestire Data e Ora con PHP:

Come già detto in precedenza il PHP è uno strumento molto potente che ci permette di creare una moltitudine di funzioni e gestirle in modo semplice ed intuitivo.

In questa guida parleremo di come poter gestire le date e orari con il PHP. Ovviamente prima faremo la nostra solita precisazione del tema che tratteremo.

Si perchè quando si parla di data e ora bisogna precisare che questi due "dati" sono soggettivi. Cosa voglio dire con questa frase. Il PHP non ha un orologio unico che coordina l'ora e data in modo generale così da non aver differenze di orario.

L'orario e la data variano da server a server, stessa cosa se prendiamo 3 persone e gli chiediamo l'ora precisa con minuti e secondi. Tutti e tre avranno l'ora diversa in quanto non sono sincronizzati tra loro.

Ho voluto specificare questo particolare perchè il mio server (sul quale è ospitato questo sito) non è italiano ed ho avuto una brutta sorpresa quando ho dovuto creare uno script in cui era presente l'ora e la data. Niente di irrimediabile però è giusto saperlo in partenza!

Addirittura l'orario e la datazione cambiano da Sistema Operativo a Sistema Operativo, in questo caso la variazione sarà una sottigliezza però esiste.

Questo perchè la data viene generata tramite un calcolo con il numero di secondi trascorsi dal 1 gennaio 1970, stiamo parlando in questo caso di TIMESTAMP (ovvero la famosa UNIX EPOCH), ai giorni nostri.

I valori massimi e minimi memorizzabili sono rappresentati da un numero intero a 32 bit con segno, quindi arriveremo a 13 dicembre 1901 20:45:54 al 19 gennaio 2038 03:14:07. Invece nei sistemi Windows non avremo la specificazione dell'ora in quanto non sono presenti i numeri negativi... Questione di particolari.

Finita la solita precisazione partiamo con la spiegazione del codice necessario per mostrare la data e l'orario.

Partiamo con il mostrare il famoso TIMESTAMP:

<?php
echo mktime();
?>

Questo ci mostrerà il seguente risultato: 1146075063, che tradotto in data ed ora significano: 26-04-2006 20:11:03.

La funzione time() è molto utile quando dovete memorizzare molte date, per esempio il famoso script per la creazione di forum phpBB utilizza la memorizzazione del TIMESTAMP su database per avere maggiore libertà e leggerezza.

Bene adesso vi illustrerò la funzione principale che utilizzeremo sempre per visualizzare l'orario e la data. La funzione si chiama date() e potete trovare tutta la documentazione ufficiale a questo indirizzo: http://www.php.net/manual/en/function.date.php, purtroppo la documentazione aggiornata è sempre in inglese. Esiste anche in italiano ma non è super aggiornata, eccola: http://www.php.net/manual/it/function.date.php.

Ecco la grammatica della funzione:

string date ( string formato [, int timestamp] )

Come di norma questa funzione restituisce una stringa ed accetta due argomenti, il primo è rappresentato da "formato", cioè il formato in cui vogliamo sia visualizzata la data (subito dopo vi mostrerò i diversi tipi) questo è un oggetto obbligatorio.

Invece il secondo argomento è facoltativo ed è rappresentato da un numero intero, che è quello di cui parlavamo prima.

Di seguito tutti i formati disponibili per mostrare la data:

Data:
Formato Risultato
d giorno del mese, 2 cifre senza tralasciare gli zero; i.e. "01" a "31"
D giorno della settimana, testuale, 3 lettere; i.e. "Fri"
F mese, testuale, long; i.e. "January"
j giorno del mese senza eventuali zero; i.e. "1" a "31"
l ("L" minuscola) giorno della settimana, testuale, long; i.e. "Friday"
m mese; i.e. "01" a "12"
M mese, testuale, 3 lettere; i.e. "Jan"
n mese senza eventuali zero; i.e. "1" a "12"
w giorno della settimana, numerico, i.e. "0" (Domenica) a "6" (Sabato)
Y anno, 4 cifre; i.e. "1999"
y anno, 2 cifre; i.e. "99"
z giorno dell'anno; i.e. "0" a "365"

Orario:

Formato: Risultato:
a mostra "am" o "pm"
A mostra "AM" o "PM"
g formato a 12-ore senza eventuali zero; i.e. "1" a "12"
G formato a 24-ore senza eventuali zero; i.e. "0" a "23"
h formato a 12-ore; i.e. "01" a "12"
H formato a 24-ore; i.e. "00" a "23"
i minuti; i.e. "00" a "59"

Ora facciamo un esempio di utilizzo:

<?php
echo date ("d-m-Y H:i:s");
?>
Questo stamperà il seguente risultato: 27-04-2006 14:12:16.

Come vedete si possono aggiungere anche caratteri all'interno della funzione date(). Infatti se notate ho inserito il trattino "-" per dividere giorno, mese e anno. Poi ho inserito i due punti ":" per dividere ore, minuti e secondi.

Ora vi faccio altri esempi per illustrarvi meglio l'utilizzo della funzione date():

<?php
echo date ("d.m.y");
?>
Questo stamperà il seguente risultato: 27.04.06.

Altro esempio:

<?php
echo date ("o\g\g\i: D F Y H:i:s");
?>
Questo stamperà il seguente risultato: oggi: Thu April 2006 14:36:48.

Come vedete da questo ultimo esempio ho inserito una parola all'interno del oggetto della funzione. Noterete che ho inserito prima di ogni lettere aggiuntiva della parola uno slash "\". Li ho inserito per un semplice motivo, perchè sono elementi della funzione, se controllate nella tabella che ho scritto prima vedrete che la "g" e la "i" restituiscono rispettivamente l'ora e i minuti. Se io non mettevo gli slash si creava non poca confusione.

Se invece la parola che volete inserire non ha lettere che sono elementi della funzione potete inserirli tranquillamente senza slash in qualsiasi punto del primo argomeno.

Ecco un esempio:

<?php
echo date ("ecco: D F Y H:i:s");
?>
Questo stamperà il seguente risultato: ecco: Thu April 2006 14:41:21.

Ovviamente noterete nella documentazione ufficiale che la funzione date() può essere utilizzata in combinazione con altre funzioni come mktime(). Questo però è già un po' più avanzato e ve lo mostrerò nella prossima guida.

 









Recensione iPhone 5S!

Recensione iPhone 5!