Después de analizar
el algoritmo utilizado en dicha página (que creo que fue lo primero que debiste poner
), he simplificado la manera en la que lo hacen:
Código Javascript
:
Ver originalvar inicio = new Date(),
fin = new Date(),
inicio2, fin2;
fin.setDate(fin.getDate() + 365);
$("#foo").datepicker({
minDate: inicio,
maxDate: fin,
onSelect: function(){
inicio2 = $(this).datepicker("getDate");
fin2 = $(this).datepicker("getDate");
inicio2.setDate(inicio2.getDate() + 1);
fin2.setDate(fin2.getDate() + 365);
$("#bar").datepicker({
minDate: inicio2,
maxDate: fin2
});
}
});
Lo que hay que hacer es más simple de lo que parece. Primero, declaramos dos variables a las cuales les asignaremos a cada una el objeto
Date
y que, por defecto, toman la fecha de hoy, además, declaramos dos variables que usaremos más adelante. Luego, al valor de la fecha final para el primer calendario, le sumo 365 días, con lo cual, el usuario tendrá el rango de 1 año para seleccionar cualquiera de dichas fechas.
Enseguida, en el primer calendario, establezco los rangos de selección, utilizando las dos propiedades que mencioné en mi anterior respuesta, además, cuando seleccionemos una fecha, a las dos variables finales que declaré al inicio, les asigno la fecha que acabamos de seleccionar. A la primera de ellas, le sumo 1 un día y, a la segunda, 365, para que así la fecha final del alquiler sea como máximo igual a un año después de la fecha de inicio, es decir, la seleccionada en el primer calendario. Finalmente, asignamos estos dos datos al segundo calendario como sus rangos de selección.
DEMO
Saludos