jQuery agregar año (s) hasta la fecha

Estoy usando un selector de fecha y tengo una fecha de inicio, una duración del contrato (Años) y una fecha de finalización. Estos son todos los campos de entrada. Cuando se selecciona una fecha de inicio junto con una duración del contrato, se debe calcular la fecha de finalización.

Por lo tanto, si la fecha de inicio es 01/02/2013 y la duración del contrato es 2 (Años), debe calcularse que la fecha de finalización es 31/01/2015. He creado un poco de jQuery y estoy muy cerca, pero simplemente no puedo hacer que el endate calcule correctamente al tomar la longitud del contrato de la entrada.

HTML

      

jQuery

 $(function() { $( "#startdate, #EndDate" ).datepicker({ defaultDate: "+1w", dateFormat: 'dd/mm/yy', changeMonth: true, numberOfMonths: 1, onSelect: function( selectedDate ) { if(this.id == 'startdate'){ var ContractTerm = $('#contractlength').val(); //var ContractTerm = 2; var dateMin = $('#startdate').datepicker("getDate"); var rMax = new Date(dateMin.getFullYear() + ContractTerm, dateMin.getMonth(),dateMin.getDate() - 1); $('#EndDate').val($.datepicker.formatDate('dd/mm/yy', new Date(rMax))); } } }); 

});

Prueba esto…

 $(function() { $( "#startdate, #EndDate" ).datepicker({ defaultDate: "+1w", dateFormat: 'dd/mm/yy', changeMonth: true, numberOfMonths: 1, onSelect: function( selectedDate ) { if(this.id == 'startdate'){ var ContractTerm = $('#contractlength').val(); //var ContractTerm = 2; var dateMin = $('#startdate').datepicker("getDate"); var rMax = new Date(dateMin.getFullYear() + parseInt(ContractTerm), dateMin.getMonth(),dateMin.getDate() - 1); $('#EndDate').val($.datepicker.formatDate('dd/mm/yy', new Date(rMax))); } } }); }); 

Ver ejemplo de jSfiddle.

El problema es que estás concatating cadenas. ContractTerm es una cadena que representa lo que se ha introducido en el cuadro de texto. Tienes que convertir eso a un número:

 var ContractTerm = +$('#contractlength').val(); 
 var now = new Date(); now.setFullYear(now.getFullYear() + 10); var futureYearLimit = now.getFullYear(); $( "#startdate, #EndDate" ).datepicker({ defaultDate: "+1w", dateFormat: 'dd/mm/yy', changeMonth: true, numberOfMonths: 1, yearRange: "01/02/2013:" + futureYearLimit, 
    Intereting Posts