Reputation: 770
I have three input fields as follows :
Warranty Start Date : <input id="WarrantyStartDate" value="2015-11-22" />
Warranty period : <input id="WarrantyStartDate" value="24"/> //24 months//
Warranty End Date : <input id="WarrantyEndDate" />
Now my question is How to calculate the End Date automatically by using the warranty period value.. In Simple I want the Date after 24 months of this date "2015-11-22"
I have created a js-fiddle :
SOLVED:
function getEndDate(){
var warranty_period = $('#WarrentyPeriod').val();
var warranty_value = parseInt(warranty_period);
var WarrentyStartDate = $('#WarrentyStartDate').val();
var WarrentyStartDate = WarrentyStartDate.split('-');
var WarrentyStartDate = WarrentyStartDate[0]+'/'+WarrentyStartDate[1]+'/'+WarrentyStartDate[2];
var dateString = WarrentyStartDate; // date string
var actualDate = new Date(dateString); // convert to actual date
var newDate = new Date(actualDate.getFullYear(), actualDate.getMonth()+warranty_value, actualDate.getDate());
var myDate = new Date(newDate);
var myDate = myDate.toLocaleString();
var myDate = myDate.split(',');
var myDate = myDate[0];
var myDate = myDate.split('/');
var year = myDate[2];
var month = '';
var date = '';
if(myDate[0].length < 2){
month = '0'+myDate[0];
}else{
month = myDate[0];
}
if(myDate[1].length < 2){
date = '0'+myDate[1];
}else{
date = myDate[1];
}
var WarrentyEndDate = year+'-'+month+'-'+date;
$( "#WarrentyEndDate" ).val(WarrentyEndDate);
}
Upvotes: 2
Views: 1167
Reputation: 587
try
var startTime = new Date($("#WarrantyStartDate").datepicker().val()).getTime();
var period = new Date(0).setMonth(24);
var end = new Date(startTime + period);
$("#WarrantyEndDate").datepicker().val(end.getMonth() + "/" + end.getDate() + "/" + end.getFullYear());
Upvotes: 0
Reputation: 1038
Assuming that your "Warranty period" has an id of "WarrantyPeriod", you can try the code below:
var date = new Date($('#WarrantyStartDate').val());
date.setMonth(date.getMonth() + parseInt($('#WarrantyPeriod').val()));
$("#WarrantyEndDate").val(date.toISOString().slice(0,10));
Upvotes: 2
Reputation: 929
var d1 = new Date("2015-11-22"); // start date
var warranty_value = 24; // warranty value
d1.setMonth(d1.getMonth() + warranty_value); // this will give you end date by adding warranty value to start date
Upvotes: 3