re=/^([0-9][0-9])\/([0-9][0-9])\/([0-9][0-9][0-9][0-9])$/ function diferencia_fechas() { vect=re.exec(document.getElementById("fecha_recogida").value) var desde=new Date(vect[3], vect[2]-1, vect[1]) //Los meses en javascript van de 0 a 11 vect=re.exec(document.getElementById("fecha_devolucion").value) var hasta=new Date(vect[3], vect[2]-1, vect[1]) //1 día en milisegundos var one_day=1000*60*60*24 //Calcula la diferencia entre dos fechas y la convierte a días return(Math.ceil((hasta.getTime()-desde.getTime())/(one_day))); } function calcula_dias_alquiler() { document.getElementById("diffdias").innerHTML=diferencia_fechas(); } function comprobaciones() { var forms = document.getElementsByTagName('form'); if(diferencia_fechas()>0) forms[0].submit(); else alert("No es posible realizar la búsqueda para ese número de días de alquiler"); } window.onload = function(){ calcula_dias_alquiler(); Calendar.setup( { inputField : "fecha_recogida", ifFormat : "%d/%m/%Y", button : "elegir_fecha" } ); Calendar.setup( { inputField : "fecha_devolucion", ifFormat : "%d/%m/%Y", button : "elegir_fecha2" } ); }