Questo piccolo articolo non è mirato a chi usa le date nelle righe del database mysql per inserire le news in homepage.
Serve a chi deve gestire grandi quantità di dati, dove le DATE sono importanti per molte ricerche.
Questa pillola è sviluppata come FAQ.
Cosa è il timestamp?
Il timestamp è il tempo in secondi, trascorsi dal 1970 alla date del timestamp.
Ora che sto scrivendo questo messaggio il timestamp è 1151090816.
Ossia 1151090816 secondi trascorsi dal 1970.
Come si vede la cifra non è poi così grande come si si potrebbe aspettare, e questo è il primo vantaggio del timestamp^^.
C'è una funzione che ritorna il timestamp corrente?
La funzione nella stragrande maggioranza dei linguaggi è time().
Ritorna un intero a 32bit che corrisponde appunto al timestamp.
Perchè usare il timestamp che è così difficile da leggere?
Bella domanda. Probabilmente se ne comprende a pieno la sua utilità quando si prova ad usarlo.
Proviamo a fare alcuni semplici esempi dove il timestamp ci semplifica non poco la vita.
Primo esempio:
Abbiamo una tabella nel database mysql contenente le sessioni aperte degli utenti attivi in questo momento nel nostro sito web.
Avremo alcuni campi come:
USER_ID # L'id univoco dell'utente
LAST_ACTION #(UNSIGNED INT) che contiene il timestamp riferito all'ultima azione compiuta.
Ad ogni apertura, da parte dell'utente di una qualsiasi pagina uan funzione sarà incaricata di aggiornare il valore del campo LAST_ACTION.
UPDATE sessioni SET LAST_ACTION='".time()."' WHERE USER_ID='$USER_ID';
Dopo aver aggiornato l'ultima azione dell'utente vogliamo che chi non ha compiuto nessuna azione negli ultimi 15 minuti si disconnetta.
Quindi ci basterà fare un DELETE delle righe più vecchie di 15minuti, ma come?
Molto semplice. Analizzate questa query:
"DELETE FROM sessioni WHERE LAST_ACTION<".time()-15*60.";"
15*60=900 # sono i secondi presenti in 15 minuti.
Sottraiamo alla data corrent 15 minuti. Con il delete dichiariamo di voler cancellare le righe più vecchie di "ora-15minuti".
Forse lavorare con i numeri invece che con le date puo' risultare più difficile all'inizio ma solo all'inizio.
Ma è veramente utile? Ci sono funzione che mi aiutano a gestire il timestamp?
Sì, direi che il timestamp è fondamentale per lavorare con molte date.
Un solo numero per gestire le date. Una idea geniale che fa risparmiare molto tempo.
Il PHP, come altri linguaggi mette a disposizione le funzioni per convertire date in timestamp e vice versa. Generalmente si converte il timestamp in una stringa leggibile solo in fase di output, questo perchè fare ricerche in ordine di tempo con il timestamp è molto più comodo^^.
http://it2.php.net/manual/it/function.date.php
A sinistra ci sono altre funzioni per convertire.
Per ora tenetevi questo abbozzo che devo uscire di casa.
Non sapevo come perdere mezzora XD.
Ciao