Esistono situazioni in cui, senza ricorrere a funzioni server-side, sia sufficiente gestire un confronto tra date utilizzando Javascript. Vediamo come confrontare, velocemente, la data odierna con una preimpostata. Seppur sia un argomento trattato all’alba dei tempi, una rinfrescata potrebbe tornare utile 😉 Per farlo utilizzeremo l’oggetto Date e la funzione getTime().
La funzione Javascript di confronto
function dateCompare(){ var preimpostata = new Date(2092, 3, 30); //30 APRILE 2092 var oggi = new Date(); var diff = preimpostata.getTime() - oggi.getTime(); //Se la data preimpostata è già passata if(diff< =0){ alert("La data è già passata!"); } //Se la data preimpostata non è ancora passata else { alert("Non è ancora passata la data!"); } };
Con il codice mostrato stiamo eseguendo le seguenti operazioni:
- Imposto una data “traguardo” e la memorizzo nella variabile “preimpostata”. Ricordiamoci che la numerazione dei mesi in Javascript parte da 0 e non da uno. Quindi Gennaio corrisponde al mese numero 0.
- Memorizzo in una variabile “oggi” la data odierna del pc utilizzando l’oggetto Date.
- Il metodo getTime() restituisce il numero di millisecondi trascorsi tra il 1 Gennaio 1970 e la data di riferimento. Nel nostro caso quindi saranno rispettivamente la data odierna e il 30 Aprile 2092.
- Se questa differenza è minore o uguale a zero (e quindi la data preimpostata è passata), fai un’azione altrimenti fanne un’altra
Come possiamo vedere è tutto molto semplice. Utilizzando la funzione setFullYear() avremmo potuto anche fare il confronto diretto tra le due date senza passare per i “millisecondi”. Altri metodi utili dell’oggetto Date()
per la gestione delle date sono:
- getHours() – Per ottenere l’ora
- getMinutes() – Per ottenere i minuti
- getSeconds() – Per ottenere i secondi
- getYear() – Per ottenere l’anno
- getFullYear() – Per ottenere l’anno a 4 cifre
Per la realizzazione di un orologio, ricordo ancora che utilizzando un linguaggio client-side possiamo recuperare solamente l’orario del PC dell’utente, vi rimando a questo semplice esempio: Javascript Time Clock.