Mettiamo di dover realizzare un form per prenotare un viaggio e, quindi, dobbiamo sicuramente lavorare sulla validazione dei dati inseriti nel form.

Un controllo da dover sicuramente fare è quello sulla data di partenza e, in questo caso, verificare che non sia successiva a quella di arrivo.

Vediamo come realizzare questo controllo con il buon vecchio JavaScript 😉

Form

<form method=”get” action=”#” name=”form”>
Data di partenza<br />
<input type=”text” name=”data1″  /><br /><br />
Data di arrivo<br />
<input type=”text” name=”data2″  /><br /><br />
<input type=”button” value=”Check date” onclick=”javascript:check_date()” />
</form>

Funzione JS

function check_date() {

var data_iniziale = document.form.data1.value;
var data_finale = document.form.data2.value;

var arr1 = data_iniziale.split(“/”);
var arr2 = data_finale.split(“/”);

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

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

if (r1<=r2) alert(“Il controllo ha avuto buon esito.”);
else alert(“La data di partenza è successiva a quella di arrivo!”);

}

Analizziamo la funzione JS:

var data_iniziale = document.form.data1.value;
var data_finale = document.form.data2.value;

Recuperiamo la data di partenza e quella di arrivo nel formato gg/mm/aaaa

var arr1 = data_iniziale.split(“/”);
var arr2 = data_finale.split(“/”);

“splittiamo” (non l’ho inventato io fortunatamente  🙂 ) le variabili per ottenere in due array giorno, mese e anno delle due date.

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

Creiamo i due oggetti “Date” delle due date.

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

Ricaviamo con getTime i timestamp che potremo facilmente confrontare.

if (r1<=r2) alert(“Il controllo ha avuto buon esito.”);
else alert(“La data di partenza è successiva a quella di arrivo!”);

A questo link potete provare lo script.

NO SPAM. Non fornirò la tua email a terzi e riceverai solo contenuti che ti interessano sugli argomenti che tratto e potrai cancellarti quando vuoi con un link che trovi in tutte le email.