来自event.value的值不正确

问题描述

我需要用斜角材料格式化日期,所以我遵循this guide:

我的代码在此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对象放入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