Javascript 从输入类型date开始添加月份到日期

Javascript 从输入类型date开始添加月份到日期,javascript,angular,Javascript,Angular,我的表单中有两个输入字段: <input type="date" [(ngModel)]="contractInception" name="contractInception"> <input type="text" [(ngModel)]="contractLength" (blur)="calculateContractEnd()" name="contractLength" maxlength="2" max="72"> 例如: 用户将2018年4月20日输入C

我的表单中有两个输入字段:

<input type="date" [(ngModel)]="contractInception" name="contractInception">
<input type="text" [(ngModel)]="contractLength" (blur)="calculateContractEnd()" name="contractLength" maxlength="2" max="72">
例如:


用户将2018年4月20日输入ContractOption,将2018年4月12日输入contractLength,而我希望contractEnd的值为2019年4月20日。我花了一点时间才找到答案,但现在使用moment.js的解决方案如下所示:

calculateContractEnd() {
      let monthToAdd = this.contractLength.toString();
      let dateToCalc = moment(this.contractInception).add(monthToAdd, 'month'); 
      let newDate = dateToCalc.toDate(); 
      let newConvertedDate = newDate.toISOString() 
      let newOnlyDate = newConvertedDate.split('T')[0]; 
      this.contractEnd = newOnlyDate; 
  }

问题是要得到一个值,这个值可以从一个数据库解析回值字段,但有了这个解决方案,它就可以工作了

我建议使用类似于moment.jsIt的方法。问题不太清楚-您是否成功地计算了结束日期,但没有显示出来?请添加CalculateContactEnd的代码。
calculateContractEnd() {
      let monthToAdd = this.contractLength.toString();
      let dateToCalc = moment(this.contractInception).add(monthToAdd, 'month'); 
      let newDate = dateToCalc.toDate(); 
      let newConvertedDate = newDate.toISOString() 
      let newOnlyDate = newConvertedDate.split('T')[0]; 
      this.contractEnd = newOnlyDate; 
  }