in JavaScript il costruttore Date è abbastanza semplice da utilizzare ed il calcolo di differenza date altrettanto, essendo intrinseco nell'operatore meno "-" ... esempio:
codice:
var today = new Date,
past = new Date;
past.setFullYear(today.getFullYear() - 1);
alert((today - past) / 24 / 60 / 60 / 1000);
quell'alert mostrerà i giorni di differenza ... 365
Quando sottrai data2 a data1 il risultato è in millisecondi, come usare il getTime di entrambi e fare la differenza.
/ 24 sono le ore al giorno
/ 60 i minuti per ogni ora
/ 60 i secondi per ogni ora
/ 1000 i millisecondi per avere un risultato in giorni
Nel tuo caso dovresti aggiungere una callback al metodo onkeyup dei campi dove viene inserito l'orario ... questo metodo dovrà verificare che il dato sia utilizzabile
codice:
if(/^\d{1,2}:\d{2}$/.test(dato)){
var time = dato.split(":");
time[0]; // saranno le ore
time[1]; // saranno i minuti
}
con un controllo analogo a tempo2 puoi settare due oggetti Date tramite setHour e setMinutes, dove per avere maggiore precisione potrai settare anche setSeconds a zero per entrambi.
A quel punto puoi fare la sottrazione avendo un risultato in millisecondi ... moltiplicare questi per 1000 * 60 * 60 * 24 e creare un nuovo oggetto Date con il valore (eventualmente aggiungi anche l'anno attuale) e sfruttare lo stesso per avere la differenza in ore e minuti tramite getHours e getMinutes.
Certo è che se non conosci niente di JavaScript o trovi qualche anima generosa che fa tutto quello che ti serve oppure la vedo difficile ... nonostante l'input.
Ricapitolando:
devi conoscere la gestione degli eventi in markup come onkeyup e devi conoscere il costruttore Date. Devi conoscere le RegExp per avere più controllo sui dati e devi conoscere l'abc del JavaScript per gestire e/o mostrare le informazioni.
JavaScript è un bel linguaggio ... non è un giocattolo, se non lo si conosce il consiglio che mi sento di dare è di non usarlo affatto soprattutto dove non è indispensabile come in questo caso dove i calcoli puoi farli lato server, ambiente che presumo tu conosca meglio.