Добавить количество дней для заданной даты

#javascript #angular

#javascript #angular

Вопрос:

Я хотел бы добавить количество дней к дате, которую я указываю в своей форме, а затем отобразить ее в пустом поле ввода.

     <div class="col">
      <input type="date" [(ngModel)]="date" />
      <input type="number" min="1" max="31" [(ngModel)]="day"/>
    </div>    
    <div class="col">
      <input type="button" value="Calculate" (click)="addDays()"/>
    </div>
    <div class="col">
      <input type="text" [(ngModel)]="result"/>
    </div>
 

Код, лежащий в основе

   day: number;
  date: Date;
  result: Date;

  addDays(){
   this.result = this.date.setDate(this.date   this.day);
    console.log(this.result);        
  }
 

Я получаю сообщение об ошибке: this.date.setDate is not a function потому что я не могу добавить число к дате. Я проверил некоторые темы, но не нашел решений.

Ответ №1:

Вы должны сделать что-то вроде этого:

 function addDays(date, days) {
  var newDate = new Date(date);
  newDate.setDate(newDate.getDate()   days);
  return newDate;
}
 

Комментарии:

1. Я знаю, но getDate() дает текущую дату, и я не хочу этого, и это не сработает, потому что уже указана дата.

2. он не должен указывать текущую дату, потому что вы это делаете new Date(date) , а не new Date()