PHP

La gestione delle date in PHP

4 mag , 2013  

php logo

php logo

La gestione delle date in PHP è una delle funzioni più importanti per quanto riguarda lo sviluppo di un sito web, blog o ad esempio di un gestore di commenti o forum.

Possiamo facilmente gestirle tramite le semplici funzioni time()date() o mktime(), vediamo in breve come funzionano!

time()

La funzione time() restituisce un numero di 10 cifre, chiamato timestamp che equivalgono  al numero di secondi passati dalla mezzanotte del 1 Gennaio 1970 ( GMT ) dalla data attuale in cui viene avviata questa funzione. Possiamo utilizzarla in questo modo:

//time()
 
//diamo in output il timestam attuale
echo 'Il timestamp attuale è ' . time();
 
//possiamo gestirlo come se fosse una variabile
$time_attuale = time();
 
//possiamo ottenere il timestamp del giorno precedente alla data attuale
$ieri = $time_attuale - 86400;
//o del prossimo giorno
$domani = = $time_attuale + 86400;
 
// e come per la funzione vera e propria darlo in output
echo 'Il timestamp di ieri era ' . $ieri;
echo 'Il timestamp di domani sarà ' . $domani;

Una nota importante: 1 giorno in secondi equivale a 86 400 secondi.

E se noi volessimo calcolare i secondi esatti da passata da una certa data e non dal 1970?

mktime()

Una volta capito cos’è il timestamp possiamo quindi facilmente iniziare a gestire le nostre date, possiamo creare il timestamp ovvero il numero di secondi passati da una precisa data.

Ci viene in aiuto la funzione mktime() che ha questa sintassi

mktime( ora, min, sec, mese, giorno, anno );

Ecco alcuni esempi di come utilizzarla:

//mktime
 
//è possibile calcolare il timestamp di una data precisa
//ad esempio 12 Novembre 1987 alle 15:45:01
$data = mktime( 15, 45, 01, 11, 12, 1987 );
 
//o darlo in output
echo mktime( 15, 45, 01, 11, 12, 1987 );

Ma cosa possiamo farcene di tutti questi secondi?? Possiamo trasformarli in una data traimite la seguente funzione

date()

Con la funzione date() tranquillamente trasformare tutti questi timestamp in date facilmente comprensibili. Ecco la sua sintassi:

date( 'd - m - Y H:i', timestamp );

Questa funzione, datoci uno timestamp calcola, in questo caso, il giorno, il mese, l’anno, l’ora e i minuti precisi. Infatti i caratteri tra le virgolette determinano il formato della data scelta e se lo dessimo in output sarebbe il seguente:

04 - 05 - 2013 15:02

possiamo cambiare il formato a nostro piacimento, per una completa lista dei formati supportati vi rimando al Manuale in Italiano di PHP

Ecco vari esempi di come utilizzare la funzione date()

//date()
 
//possiamo utilizzare vari formati ad esempio
// gg/mm/aaaa
echo date( 'd/m/Y' time() );
// gg/MESE/aa 
echo date( 'd/M/y' time() );
 
//oppure calcolare la data di un preciso momento
echo date( 'd/m/Y' mktime(15, 45, 01, 11, 12, 1987) );
 
//oppure
$data = mktime( 15, 45, 01, 11, 12, 1987 );
 
echo date( 'd/M/y' $data );
echo date( 'd/M/y' $data );

Nel caso non abbiate ben capito qualche passaggio vi invito a commentare qua sotto e a fare le vostre domande! ;)

A presto!