event.value中的值不正确



我需要用有角度的材料格式化日期,所以我遵循以下指南:

我的代码在这个compoment.html:

<mat-form-field>
<input id="datanint" formControlName="dataBirth" (dateChange)="emitBirthDateChangeForValidation($event)" matInput [matDatepicker]="picker" />
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker startView="multi-year" [startAt]="startDate"></mat-datepicker>
</mat-form-field>

我的ts:

const FORMAT = {
parse: {
dateInput: 'DD/MM/YYYY',
},
display: {
dateInput: 'DD/MM/YYYY',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY',
}
};

providers:[
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
{ provide: MAT_DATE_FORMATS, useValue: FORMAT }]
})

cosntructor(){
this.dataBirth=new FormControl(moment());
}
emitBirthDateChangeForValidation(event: any) {
console.log(event);
this.eventEmit.emit(event);
}
}

如果我刚刚链接的stackblitz项目,并且当我在链接的项目中打印event.value时(当它被称为数据更改时(,我也会复制此代码:

value: 2020-10-01T22:00:00.000Z

在我自己的项目中,当我打印event.value时(当它被称为数据更改时(:

value: Moment {_isAMomentObject: true, _i: {…}, _isUTC: false, _pf: {…}, _locale: Locale, …}

我在event.value中没有即时对象,但我必须只有日期。有人能帮我吗?

试试这个:

import * as moment from 'moment';
//your function
emitBirthDateChangeForValidation(event: any) {
console.log(moment(event.value._d).format("MM/DD/YYYY"));
}

一旦获得了正确的值,就可以配置该数组来检索相关部分,就像我在上面的代码中提取了MM/DD/YYYY格式的Date一样。

PS:我希望你已经完成了npm install moment --save

最新更新