Date & Time
In questo capitolo esamineremo un po' più da vicino cosa ci offre il PHP per la gestione delle date e del tempo.
Queste funzioni ci permettono di scaricare la data e l'orario dal server dove gira il PHP.E' possibile usare queste funzioni per formattare l'output delle date e degli orari in diversi modi.
Ecco l'elenco delle funzioni che il PHP mette a disposizione:
checkdate -- Verifica una data/orario gregoriana/o
date -- Formatta una data o orario locale
getdate -- Riceve informazioni su data/orario
gettimeofday -- Riceve l'orario attuale
gmdate -- Formatta una data/ora GMT/UTC
gmmktime -- Riceve l' UNIX timestamp per una data GMT
gmstrftime -- Formatta una data/ora GMT/UTC secondo i parametri locali
localtime -- Riceve l'orario locale
microtime -- Restituisce l'attuale UNIX timestamp con i microsecondi
mktime -- Restituisce la UNIX timestamp per una data
strftime -- Formatta una data/orario locale accordandola/o alle impostazioni locali
sstrtotime -- Analizza le descrizioni testuali di datetime in Inglese nell' UNIX timestamp
time -- Restituisce l'attuale UNIX timestamp
Rimandiamo alla lettura del manuale per una dettagliata descrizione delle funzioni, noi ora daremo qualche cenno sull'utilizzo di quelle di uso più comune.
Descrizione : int time(void)
restituisce il timestamp Unix corrente
Esempio :
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$a = time();
echo "Funzione time()<br>";
echo $a;
?>
il risultato è:
esempi di uso funzioni per date e tempo
Funzione time()
1061205958
Restituisce un array associativo, contenente le informazioni sulla data del timestamp o dell'attuale orario locale se non è stato assegnato timestamp.
Gli elementi dell' array sono:
Descrizione : array getdate(int timestamp)
Esempio:
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$a = getdate();
echo "Funzione getdate()<br>";
$month = $a['month'];
$mday = $a['mday'];
$year = $a['year'];
echo "$month $mday, $year"
?>
Si ottiene :
esempi di uso funzioni per date e tempo
Funzione getdate()
August 18, 2003
checkdate -- Verifica una data/orario gregoriana/o
Descrizione
bool checkdate ( int mese, int giorno, int anno)
Restituisce TRUE se la data inserita è valida; altrimenti restituisce FALSE.
Controlla la validità di una data formata dagli argomenti.
Una data è considerata valida se:
Gli anno(i) bisestili sono presi in considerazione.
Esempio:
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$a = checkdate(13,4,2001);
print "Funzione checkdate(13,4,2001)<br>";
print "data corretta $a";
$a = checkdate(11,4,2001);
echo "<br>Funzione checkdate(11,4,2001)<br>";
echo "data corretta $a";
?>
da il seguente risultato:
esempi di uso funzioni per date e tempo
Funzione checkdate(13,4,2001)
data corretta (quindi FALSE)
Funzione checkdate(11,4,2001)
data corretta 1 (quindi TRUE)
date -- Formatta una data o orario locale
Descrizione : string date ( string formato [, int timestamp])
Restituisce una stringa formattata in accordo con il formato della stringa usato nell' intero timestamp o nell'attuale orario locale se timestamp non è assegnato.
Nota: L'intervallo valido del timestamp è abitualmente da Fri, 13
Dec 1901 20:45:54 GMT a Tue, 19 Jan 2038 03:14:07 GMT. (Queste date
corrispondono al valore minimo e al massimo per un intero segnato a 32-bit.)
In aggiunta, dei databases hanno funzioni che convertono i
loro formati di data in timestamps (come la funzione di MySQL, UNIX_TIMESTAMP).
I seguenti caratteri sono utilizzati nella stringa formato:
Esempio 1. Esempio di date()
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$a = date ("l dS of F Y h:i:s A");
print 'Funzione date("l dS of F Y h:i:s A")<br>';
print $a."<br>";
PRINT 'Funzione date ("l", mktime(0,0,0,7,1,2000))<br>';
$a = date ("l", mktime(0,0,0,7,1,2000));
echo "il primo luglio del 2000 " .$a;
?>
il risultato:
esempi di uso funzioni per date e tempo
Funzione date("l dS of F Y h:i:s A")
Monday 18th of August 2003 03:37:10 PM
Funzione date ("l", mktime(0,0,0,7,1,2000))
il primo luglio del 2000 Saturday
E' possibile utilizzare un carattere utilizzabile nella stringa del formato come carattere normale facendolo semplicemente precedere dal carattere di escape, il backslash. Se il carattere con un backslash è ancora una sequenza speciale, devi inserire di nuovo il carattere di escape per il backslash.
Esempio 2. Caratteri di escape in date()
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$a = date("l \\t\h\e jS");
print 'Funzione date("l \\t\h\e jS") utilizzo di escape \<br>';
print $a."<br>";
?>
il risultato:
esempi di uso funzioni per date e tempo
Funzione date("l \t\h\e jS") utilizzo di escape \
Monday the 18th
È possibile usare date() e mktime() assieme per cercare delle date nel futuro o
nel passato.
Esempio 3. Esempio di date() e mktime()
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
$domani = mktime (0,0,0,date("m") ,date("d")+1,date("Y"));
$ilmesescorso = mktime (0,0,0,date("m")-1,date("d"), date("Y"));
$annoprossimo = mktime (0,0,0,date("m"), date("d"), date("Y")+1);
print "Ecco le date in formato Unix Timestamp<br>";
print "Domani ".$domani."<br>";
print "il mese scorso ".$ilmesescorso."<br>";
print "il prossimo anno ".$annoprossimo."<br>";
setlocale (LC_TIME, "it_IT");
print (strftime ("%A.\n",$domani));
?>
ecco il risultato:
esempi di uso funzioni per date e tempo
Ecco le date in formato Unix Timestamp
Domani 1061251200
il mese scorso 1058486400
il prossimo anno 1092787200
martedì.
Nota: Questo può essere più affidabile della semplice addizione e sottrazione del numero di secondi in un giorno o mese a un timestamp a causa del daylight savings time.
Alcuni esempi della formattazione di date().
Nota che puoi scrivere qualsiasi altro carattere senza escape, il quale attualmente non dovrebbe produrre risultati indesiderati, ma altri caratteri potrebbero essere assegnati come caratteri della stringa di formattazione nelle prossime versioni del PHP.
Quando si utilizza il carattere di escape, assicurati di usare un singolo apice per prevenire che caratteri come \n facciano iniziare una nuova linea.
Esempio 4. Formattazione con date()
<?php
echo "<b>esempi di uso funzioni per date e tempo <b><br>";
echo "Formattazione della data odierna<br>";
echo date("F j, Y, g:i a")."<br>";
echo date("m.d.y")."<br>";
echo date("j,n, Y")."<br>";
echo date("Ymd")."<br>";
echo date('h-i-s, j-m-y, it is w Day z ')."<br>";
echo date('\i\t \i\s \t\h\e jS \d\a\y.')."<br>";
echo date("D M j G:i:s T Y")."<br>";
echo date('H:m:s \m \i\s\ \m\o\n\t\h')."<br>"; // 17:03:17 m is month
echo date("H:i:s")."<br>"; // 17:16:17
?>
ed ecco i risultati :
esempi di uso funzioni per date e tempo
Formattazione della data odierna
August 18, 2003, 4:24 pm
08.18.03
18,8, 2003
20030818
04-24-37, 18-08-03, 2431 2437 1 Monpm03 229
it is the 18th day.
Mon Aug 18 16:24:37 UTC 2003
16:08:37 m is month
16:24:37
Per le altre funzioni rimandiamo al manuale su www.php.net.