Я работаю над приложением Angular, пытаясь использовать momentJS, чтобы добавить определенное количество лет к дате, но, похоже, это не работает.
Это мой код:
changeGuaranteeEndDate(guaranteeDuration) {
console.log("changeGuaranteeEndDate() START");
console.log("GUARANTEE START DATE: " + this.newAssetForm.value.guarantee_start_date);
console.log("GUARANTEE DURATION: " + this.newAssetForm.value.guarantee_duration);
console.log("EVENT VAL: " + guaranteeDuration);
this.newAssetForm.value.guarantee_duration = guaranteeDuration;
console.log("GUARANTEE DURATION: " + this.newAssetForm.value.guarantee_duration);
let myMoment: moment.Moment = moment(this.newAssetForm.value.guarantee_start_date);
console.log("myMoment: ", myMoment);
let myMoment2 = myMoment;
myMoment2.add(3, 'y')
console.log("myMoment2: ", myMoment2);
}
Итак, в основном я создаю объект myMoment, начиная с даты, определенной в this.newAssetForm.value.guarantee_start_date.
Затем я пытаюсь создать новый объект myMoment2, начиная с myMoment, и добавляю к этому объекту 3 года. Наконец-то распечатаю
Проблема в том, что в консоли Chrome я получаю следующий вывод:
myMoment:
Moment {_isAMomentObject: true, _i: Fri Jan 29 2021 13:04:29 GMT+0100 (Ora standard dell’Europa centrale), _isUTC: false, _pf: {…}, _locale: Locale, …}
_d: Mon Jan 29 2024 13:04:29 GMT+0100 (Ora standard dell’Europa centrale) {}
_i: Fri Jan 29 2021 13:04:29 GMT+0100 (Ora standard dell’Europa centrale) {}
_isAMomentObject: true
_isUTC: false
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: ƒ, …}
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
__proto__: Object
myMoment2:
Moment {_isAMomentObject: true, _i: Fri Jan 29 2021 13:04:29 GMT+0100 (Ora standard dell’Europa centrale), _isUTC: false, _pf: {…}, _locale: Locale, …}
_d: Mon Jan 29 2024 13:04:29 GMT+0100 (Ora standard dell’Europa centrale) {}
_i: Fri Jan 29 2021 13:04:29 GMT+0100 (Ora standard dell’Europa centrale) {}
_isAMomentObject: true
_isUTC: false
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: ƒ, …}
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
__proto__: Object
Проблема в том, что, как видно из предыдущего вывода, кажется, что годы не были добавлены к исходному объекту myMoment.
Что не так с моим кодом? Что мне не хватает? Как правильно добавить годы к исходному объекту myMoment?
console.log( this.newAssetForm.value.guarantee_start_date )
? что он возвращает? - person Don Diego   schedule 29.01.2021let myMoment2 = myMoment.clone();
, а затем добавить. вы увидите разницу. - person Nik   schedule 29.01.2021