Data ed orario con php:
Una sezione particolare deve essere indirizzata all'analisi della data e dell'orario con php.
Se avete prodotto degli script complessi, vi sarete resi conto che le funzioni per stabilire
un'orario o data ben precisa rivestono un'importanza basilare, sia perchè
riempiono spazi
che altresì sarebbero vuoti nella pagina dando informazioni aggiuntive al navigatore,
sia perchè permettono di organizzare i dati secondo una logica temporale (dal più giovane al più
vecchio e viceversa) ritornando anche il momento preciso della loro creazione.
La seconda motivazione è sicuramente quella che più ci interessa, immaginiamo un foglio RSS
con contenuti di attualità senza la data dell'articolo o senza un suo ordine in tal senso...
Timestamp
Il
timestamp non è altro che il numero di secondi a partire da una data ben precisa, il
1° Gennaio 1970, e serve come punto di riferimento per risalire a tutte le date.
Quando hai aperto questa pagina il
timestamp era 1283453030, vuol dire
che dal 01/01/1970 sono passati 1283453030 secondi.
Se dovete memorizzare una data DOVETE memorizzare il suo timestamp, dal quale
potrete risalire alla data.
Questo perchè esistono più formati data, e nel tempo potreste avere la necessità di modificare o
eseguire funzioni per modificare la stessa; è buona norma memorizzare il timestamp e trovare
il formato con la giusta funzione nel momento necessario.
ESEMPIO PRATICO DI UTILIZZO FUNZIONI DATA:
Avete un form di registrazione utenti convalidato tramite email.
NON è detto che tutti gli utenti convalidino la loro registrazione ed è inutile tenere in
archivio i dati di tali utenti.
Una soluzione potrebbe essere memorizzare il
timestamp di registrazione e fare eseguire
un semplice ciclo if che cancella tutti i dati che superano una certa quantità di secondi
ad ogni nuovo utente che vuole registrarsi.
Ricordate di utilizzare i secondi, un giorno=86400 secondi.
time()
Quando vogliamo trovare il timestamp attuale dobbiamo eseguire la funzione time().
Time() restituisce il numero di secondi a partire dal 1° Gennaio 1970. Tale numero è chiamato timestamp.
Esempio:
<?
$a=time();
echo$a;
?>
Risultato:
timestamp attuale =
1283453030
date()
Questa funzione restituisce la data di un preciso momento, nel formato indicato al suo interno.
La sintassi è la seguente:
date('parametri', $X);
$X è una variabile definita in precedenza che contiene il valore numerico del timestamp a cui ci riferiamo. Se non è presente ci riferiamo a quello attuale.
I parametri che inseriremo forniranno il formato data che desideriamo.
| Parametro |
Descrizione |
| Y | anno in 4 cifre |
| y | anno in 2 cifre |
| n | mese numero (1-12) |
| m | mese numero in 2 cifre (01-12) |
| F | mese testuale ('January' - 'December') |
| M | mese testuale su 3 lettere ('Jan' - 'Dec') |
| d | giorno su due cifre (01-31) |
| j | giorno (1-31) |
| w | giorno settimanale, numerico (0=dom, 1=lun ecc.) |
| l | giorno settimanale, testuale ('Sunday', 'monday', ecc.) |
| D | giorno settimanale in 3 lettere ('Sun', 'mon', ecc.) |
| H | ora in due cifre (00-23) |
| G | ora (0-23) |
| i | minuti (00-59) |
| s | secondi (00-59) |
La funzione
date()restituisce una stringa (la data di un preciso momento).
Esempio:
$b = date('d M y - H:i', 132170400);
echo$b;
Darà come risultato:
10 Mar 74 - 19:00
Da notare che i segni '-' e ':' li abbiamo inseriti nella funzione.
Esempio:
Utilizzo di
date() con il timestamp attuale(Se aggiornate la pagina varia l'esempio):
<?
$a=time();
$b=date('d M y - H:i:s', $a);
echo$b;
?>
Darà come risultato:
02 Sep 10 - 20:43:50
mktime()
Questa funzione fornisce il timestamp di una data ben precisa (inserire solo numeri interi).
La sintassi è la seguente:
mktime(ore, minuti, secondi, mese, giorno, anno);
Se inseriamo numeri superiori a quelli usuali il PHP calcola automaticamente il risultato finale, se ad esempio inseriamo 20 nei mesi verrà interpretato come 12+8, fornendo il timestamp dell'agosto dell'anno successivo.
Questa funzione restituisce un numero (il timespamp di una data precisa).
Esempio:
Utilizzo di
mktime() con una data casuale (10-03-1974 ore 19:00):
<?
$b=mktime(19,00,00,3,10,1974);
echo$b;
?>
Darà come risultato:
132170400
checkdate()
Questa funzione controlla se i valori corrispondono ad una data corretta, è molto utile se la data è inserita dal navigatore.
La sintassi è la seguente:
checkdate(mese, giorno, anno);
Restituisce true o false.
Esempio:
<?
$a=checkdate(32, 1, 2007);
if($a){
echo"true";
}
else{
echo"false";
}
?>
Darà come risultato:
false