Добавление месяца к дате из типа ввода даты в угловых 4 - PullRequest
0 голосов
/ 05 мая 2018

У меня есть два поля ввода внутри формы:

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

я хочу, чтобы пользователь заполнил дату, когда контракт был подписан, и затем добавил количество месяцев, в течение которых контракт выполняется. Затем onBlur, когда он покидает поле contractLength, я хочу, чтобы ContractInception Date + сумма месяца, добавленная пользователем. И мне нужно это значение в моем поле <input type="date" [(ngModel)]="contractEnd" name="contractEnd" disabled>.

Таким образом, конец договора - это не то, что пользователь должен заполнить, его можно рассчитать по введенной им информации, но я не знаю как. Все, что я нашел здесь, в стеке или в Google, не работает в angular 4.

Это мои модели:

  contractLength: Number;
  contractInception: Date;
  contractEnd: Date;

пример :

Пользователь вводит 20.04.2018 в contractInception и 12 в contractLength, чем я хочу, чтобы contractEnd был 20.04.2019

1 Ответ

0 голосов
/ 06 мая 2018

Мне потребовалось время, чтобы узнать, но теперь решение с помощью 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; 
  }

проблема состояла в том, чтобы получить значение, которое можно проанализировать обратно в поле значения из <input type="date">, но с этим решением оно работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...