Como establecer un limite de fechas para seleccionar en un datetimepicker?

publicado por: Anonymous

_x000D_

_x000D_

<div class="form-group">_x000D_
	<div class="input-group date" id="datetimepicker1">_x000D_
		<input id="fechInicio"  name="fechInicio" class="form-control" type="text"/>_x000D_
		<span class="input-group-addon">_x000D_
		  <span class="glyphicon glyphicon-calendar"></span>_x000D_
		</span>_x000D_
	</div>_x000D_
</div>_x000D_
<div class="form-group">_x000D_
	<div class="input-group date" id="datetimepicker2">_x000D_
		<input id="fechFin"  name="fechFin" class="form-control" type="text"/>_x000D_
		<span class="input-group-addon">_x000D_
		  <span class="glyphicon glyphicon-calendar"></span>_x000D_
		</span>_x000D_
	</div>_x000D_
</div>

_x000D_

_x000D_

_x000D_

Tengo dos campos de fecha, los cuales quiero que al cargar la pagina muestren la fecha actual por default, y que al seleccionar una fecha en el primer calendario por ejemplo 20/06/2018 , en el segundo calendario NO me permita escoger un día anterior al que se escogió en el primer calendario, osea el 19/06/2018 y que tampoco me deje seleccionar un día después al día actual.

Así mismo quiero que en el primer calendario únicamente me permita seleccionar hasta tres meses atrás del día que seleccione en mi segundo calendario, por ejemplo si en el segundo calendario selecciono la fecha de hoy 27/06/2018, en el primer calendario solo me deje escoger hasta el 27/03/2018 NO mas tiempo atras.

Tengo el siguiente código que me muestre la fecha actual en ambos calendarios, y si en el primer calendario seleccione 25/06/18, entonces en el segundo calendario NO me deja escoger los días a tras al 25/05/18 y esta bien, es lo que quiero, pero lo que NO hace es que No respeta el periodo de los tres meses que puedo escoger hacia atrás en el primer calendario

_x000D_

_x000D_

function validaFechas(){_x000D_
_x000D_
	$('datetimepicker1').datetimepicker({_x000D_
      locale: 'es',_x000D_
	  format: 'L',_x000D_
	  defaultDate: new Date()_x000D_
	 _x000D_
	});_x000D_
	_x000D_
	$('datetimepicker2').datetimepicker({_x000D_
      locale: 'es',_x000D_
	  format: 'L',_x000D_
	  defaultDate: new Date()_x000D_
	  _x000D_
	});_x000D_
    $("#datetimepicker1").on("dp.change",function (e){_x000D_
      var fechaInicio = new Date(e.date);_x000D_
      $('#datetimepicker2').data("DateTimePicker").minDate(e.date);_x000D_
      var maximaFechaFin = new Date();_x000D_
      maximaFechaFin.setMinutes(1);_x000D_
      $('#datetimepicker2').data("DateTimePicker").maxDate(maximaFechaFin);_x000D_
      });_x000D_
 _x000D_
      $("#datetimepicker2").on("dp.change",function (e)_x000D_
      {_x000D_
       _x000D_
      $('#datetimepicker1').data("DateTimePicker").maxDate(e.date);_x000D_
      var maximaFechaInicio = new Date();_x000D_
      var minimoFechaInicio = new Date(maximaFechaInicio.getFullYear(), _x000D_
      maximaFechaInicio.getMonth(), maximaFechaInicio.getDate() -92);_x000D_
      _x000D_
	  $('#datetimepicker1').data("DateTimePicker").minDate(minimoFechaInicio);_x000D_
      });_x000D_
      $("#fechInicio").keypress(function(evt){evt.preventDefault();})_x000D_
      $("#fechFin").keypress(function(evt){evt.preventDefault();})_x000D_
    }

_x000D_

_x000D_

_x000D_

por que no respeta la validación de los días hacia atrás en mi primer calendario? como mas le puedo hacer?

probé quitando el defaultDate en el datetimepicker1, y ya respeta esa validacion solo me deja esocger hasta el 27/03/18, pero ya no muestra la fecha actual al iniciar la pagina

solución

Porque no pruebas poniéndole el minDate al datepicker desde el inicio, o sea la función validaFechas la comienzas así:

var maximaFechaInicio = new Date();
var minimoFechaInicio = new Date(maximaFechaInicio.getFullYear(), 
maximaFechaInicio.getMonth(), maximaFechaInicio.getDate() -92);

$('datetimepicker1').datetimepicker({
  locale: 'es',
  format: 'L',
  defaultDate: new Date(),
  minDate: maximaFechaInicio
});
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *