Javascript “日期计算错误”-“1天”;

Javascript “日期计算错误”-“1天”;,javascript,jquery,datetime,Javascript,Jquery,Datetime,我试图通过选择月数来计算日期,以-1天显示结果日期 $('#txtjQcal15_1, #month_number').change(function(){ var months = +$('#month_number').val(); var endmDate = new Date($('#txtjQcal15_1').val()); if (isNaN(endmDate)) {endmDate = 0;} else { endmDate.setMonth(endm

我试图通过选择月数来计算日期,以-1天显示结果日期

 $('#txtjQcal15_1, #month_number').change(function(){ 
 var months = +$('#month_number').val();    
 var endmDate = new Date($('#txtjQcal15_1').val()); 
 if (isNaN(endmDate)) {endmDate = 0;} 
  else {
 endmDate.setMonth(endmDate.getMonth() + Number(months) ); 
 $('#date_result_month').val( endmDate.getFullYear() + '-' + ( "0" + (endmDate.getMonth() + 1)).slice(-2) + '-' + ("0" + (endmDate.getDate() - 1)).slice(-2) ) ;
如果我选择2016-09-09,结果显示2016-10-08,并且可以


只有当月乞讨的计算是错误的,例如,如果我选择2016-09-01结果显示:2016-10-00!!!代替2016-09-30

添加
endmDate.setDate(endmDate.getDate()-1)解决了我的问题

$('#txtjQcal15_1, #month_number').change(function(){ 
var months = +$('#month_number').val();    
var endmDate = new Date($('#txtjQcal15_1').val()); 
if (isNaN(endmDate)) {endmDate = 0;} 
 else {
endmDate.setMonth(endmDate.getMonth() + Number(months) ); 
endmDate.setDate(endmDate.getDate() - 1);
$('#date_result_month').val( endmDate.getFullYear() + '-' + ( "0" + (endmDate.getMonth() + 1)).slice(-2) + '-' + ("0" + endmDate.getDate()).slice(-2) )  ;

Date()
对象进行计算,然后根据结果构建格式化字符串。如果将@rorymcrossan更改为(endmDate.getDate()-1),则可能重复@rorymcrossan,然后结果再次显示:2016-10-0这不是从日期中减去的正确方法。您需要这样做:@Rorymcrossan感谢它现在可以工作了。