back to top

Javascript: confrontare due date (un esempio pratico)

Attraverso Javascript è possibile effettuare confronti tra due date cioè, in parole semplici, verificare se due date sono uguali oppure se una è maggiore o minore di un altra. Un simile controllo risulta determinante in talune applicazioni che prevedono, ad esempio, una data di inizio ed una di fine e dove, pertanto, è opportuno poter verificare che vi sia una coerenza tra tali date.

Prendiamo in considerazione un esempio pratico, cioè un form per la prenotazione alberghiera in cui l’utente dovrà selezionare una data per il check-in e una per il check-out; dato che stiamo lavorando sulle date, sarà fondamentale poter effettuare dei confronti sulla base dei parametri inviati attraverso il modulo, i nostri valori di riferimento saranno quindi il giorno di ingresso (nome del campo: checkin), quello di abbandono della camera (checkout) e la data odierna (today).

All’interno del nostro ipotetico modulo le date vengono inserite nel formato italiano utilizzando come separatore il trattino:

GG-MM-AAAA

Le variabili su cui lavorare saranno quindi le seguenti:

var data_iniziale = document.nome_form.checkin.value;
var data_finale = document.nome_form.checkout.value;
var data_oggi = document.nome_form.today.value;

Ora che abbiamo creato delle variabili con i valori trasmessi dal form possiamo procedere alla loro manipolazione: le date sono manipolabili come degli array, per cui dovremo recuperare i valori che compongono i tre diversi vettori:

var arr1 = data_iniziale.split("-");
var arr2 = data_finale.split("-");
var arr3 = data_oggi.split("-");

Avendo "esploso" i nostri "array" sulla base del separatore scelto, ora potremo riposizionarne i valori utilizzando il formato standard per le date che prevede un ordine in cui l’anno precede il mese e il giorno:

var d1 = new Date(arr1[2],arr1[1]-1,arr1[0]);
var d2 = new Date(arr2[2],arr2[1]-1,arr2[0]);
var d3 = new Date(arr3[2],arr3[1]-1,arr3[0]);

Ora JavaScript sarà in grado di "riconoscere" le nuove variabili come delle date, per cui utilizzeremo l’apposita funzionalità getTime():

var r1 = d1.getTime();
var r2 = d2.getTime();
var r3 = d3.getTime();

A questo punto non dovremo fare altro che definire i confronti da operare sui parametri inviati dal form, ad esempio:

if (r1 >= r2) {
  alert("La data iniziale non deve essere successiva o uguale a quella finale.");
}
else if (r3 > r1) {
  alert("La data iniziale non deve essere precedente a quella odierna.");
}

Naturalmente, nulla vieta di integrare il codice proposto in uno script più completo che preveda di effettuare controlli su un numero maggiore di parametri.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Infinite scroll, come programmarlo su AMP e su Web con Javascript

L'infinite scroll è una tecnica di design e navigazione...

Codice Fiscale: 5 javascript per la verifica e il calcolo

Il codice fiscale รจ un identificativo tributario univoco che...

Math.ceil() – Arrotondare per eccesso con Javascript

Il metodo ceil() dell'oggetto Math di Javascript è utilizzato...

Minificare Javascript: librerie e strumenti online per comprimere il sorgente JS

La minificazione è un processo abbastanza diffuso nell'implementazione delle...

Javascript: svuotare un campo input o una textarea con un click

Quando si fornisce agli utenti un modulo per l'inserimento...

6 video player HTML5 per il tuo sito web

Con il rilascio delle specifiche definitive per HTML5 molte...
Pubblicitร