Para que el cálculo sea automático, debes de asignar una función al atributo
onSelect
del widget
datepicker
. En dicha función, tomas las fechas de ambas cajas, calculas la cantidad de días que representan ambas fechas (recordando que se toma el tiempo transcurrido desde el 1 de enero de 1970), las restas y muestras la diferencia en la tercera caja.
Código Javascript
:
Ver originalfunction diferencia(){
var fecha1 = $("#fecha1").val(),
fecha2 = $("#fecha2").val();
if (fecha1.length && fecha2.length){
var arr1 = fecha1.split("/"), //Separamos los datos de la fecha, formando un array con ellos
arr2 = fecha2.split("/"), //Separamos los datos de la fecha, formando un array con ellos
dias1 = (new Date(arr1[2], arr1[1], arr1[0]).getTime() / 1000) / 86400, //Calculamos la cantidad de días que representa
dias2 = (new Date(arr2[2], arr2[1], arr2[0]).getTime() / 1000) / 86400, //Calculamos la cantidad de días que representa
dif = dias2 > dias1 ? dias2 - dias1 : dias1 - dias2; //Restamos la cantidad de días que representa cada fecha
$("[name=total]").val(dif); //Asignamos la resta a la tercera caja
}
}
$("#fecha1, #fecha2").datepicker({
changeMonth: true,
changeYear: true,
onSelect: diferencia
});
Para calcular el tiempo representado por cada fecha, extraigo cada dato de cada una de las fechas y utilizando el objeto
Date
y sus métodos, calculo la cantidad de días que representa cada fecha. Luego, realizo la resta entre ambas cantidades, para finalmente asignar dicho resultado a la tercera caja. Todo esto solo ocurrirá cuando ambas cajas tengas las fechas asignadas.
Saludos