/ //

Gestire le date in PHP - GM Multimedia

Vai ai contenuti

Menu principale:

Gestire le date in PHP

Guida PHP



         Succede molto di frequente di avere la necessità di lavorare con le date. In PHP questo genere di operazioni sono davvero molto semplici grazie alla funzioni a disposizione. Scopriamo insieme le principali.

Gestire il timestamp con la funzione time()
         Il timestamp è un sistema di misurazione rappresentato da un intero che indica il numero di secondi a partire da una data definita Unix Epoch. In particolare indica il numero di secondi intercorsi dal 1 gennaio 1970 alle ore 00:00 al momento corrente.
         Per recuperare con PHP il timestamp attuale è sufficiente utilizzare la funzione time().
				echo time(); // restituirà un valore simile a 1468536917

Operazioni con le date
         Ovviamente non è possibile recuperare solo il timestamp corrente ma anche il timestamp di qualsiasi data. In questo caso ci viene incontro la funzione strtotime(). Essa prende in ingresso una stringa che contiene il riferimento temporale che si vuole convertire:
				echo strtotime('2015-01-01'); // restituirà 1420066800
         Questa funzione ci permette di passare anche valori molto vicini al linguaggio naturale e, di convertirli automaticamente:
				echo strtotime("now"); // timestamp corrente
				echo strtotime("10 September 2010"); // timestamp del 10 settembre 2010
				echo strtotime("+1 day"); // timestamp del giorno successivo a quello corrente
				echo strtotime("+1 week"); // timestamp della settimana successiva al giorno corrente
				echo strtotime("+1 week 2 days 4 hours 2 seconds"); // timestamp di una settimana, due giorni, 4 ore e 2 secondi rispetto al timestamp corrente
				echo strtotime("next Thursday"); // timestamp del prossimo giovedì
				echo strtotime("last Monday"); // timestamp dell'ultimo lunedì

Formattare una data
         Un’altra operazione piuttosto comune è quella di formattare una specifica data in un formato da noi definito. Ad esempio, supponiamo di dover stampare un timestamp nel formato “gg/mm/aaaa h:m:s”, per questo scopo possiamo utilizzare la funzione date():

				$timestamp = strtotime("+1 day");
				echo date('d/m/Y H:i:s', $timestamp); // stamperà, ad esempio, 17/07/2016 14:30:14
         La funzione date() prende in ingresso due parametri:
  1. $format: il formato in cui vogliamo stampare la data;
  2. $timestamp: il timestamp della data da stampare; se non viene passato questo valore verrà preso di default il timestamp corrente.
         Il formato impiega dei caratteri standard riservati per formattare la data; nell’esempio precedente abbiamo utilizzato:

CARATTEREDESCRIZIONE
dIndica il giorno con lo 0 iniziale (cioè con lo 0 anche per i giorni inferiori a 10).
mIndica il mese con lo 0 iniziale.
YIndica l’anno nel formato a 4 cifre.
HIndica le ore con 0 iniziale.
iIndica i minuti con 0 iniziale.
sIndica i secondi con 0 iniziale.
         Vediamo insieme quali sono gli altri caratteri più diffusi oltre quelli appena descritti:
CARATTEREDESCRIZIONE
DPer indicare i primi tre caratteri del giorno (es. Mon, Tue, Wed).
jEquivalente di d ma senza lo 0 (es. 1, 2, 3).
FIl nome del mese completo (es. January, February, …).
yEquivalente di Y ma con le ultime due cifre (es. 16).
         La lista completa dei caratteri per le date è disponibile sulla documentazione ufficiale di PHP.
         Vediamo qualche altro esempio di utilizzo della funzione date():
				echo date('Y-m-d H:i:s'); // stamperà 2016-07-16 che rappresenta il formato utilizzato per il DATETIME in MySQL
				echo date('r'); // stamperà Sat, 16 Jul 2016 14:51:07 +0200
				echo date('l, j F Y'); // stamperà Saturday, 16 July 2016
         Abbiamo visto come, con la funzione date(), possiamo rappresentare una data nel formato di cui necessitiamo. Vediamo ora come convertire una data da un formato, ad esempio quello anglosassone, nel nostro formato italiano. Il formato anglosassone è rappresentato come mese/giorno/anno ed è anche il formato standard riconosciuto dalla funzione strtotime(). Convertire quindi una data dal formato anglosassone a quello italiano è piuttosto semplice:
				$englishDate = '12/15/2016'; // 15 dicembre 2016 nel formato mm/dd/yyyy
				$timestamp = strtotime($englishDate); // conterrà 1481756400
				echo date('d/m/Y', $timestamp); // stamperà 15/12/2016
				echo date('l, j F Y', $timestamp); // stamperà Thursday, 15 December 2016
Visitatori online:
Sei il nostro visitatore n°:
© - Copyright 2015. - Tutti i diritti riservati - G.M. Multimedia
Torna ai contenuti | Torna al menu