角度日期选择器打印了错误的日期



我以这种方式使用matDatePicker

<mat-form-field class="col">
<input #pickerDal matInput [matDatepicker]="pickerDal" placeholder="Dal" 
(dateChange)="fromDate('change', $event)" formControlName="formDataDal">
<mat-datepicker-toggle matSuffix [for]="pickerDal"></mat-datepicker-toggle>
<mat-datepicker #pickerDal></mat-datepicker> 
</mat-form-field>

在我的 .ts 中,我声明:

formDataDal: new FormControl()

它一直正常工作,直到我决定在日期选择器中添加默认显示值。我所做的是在input标签内和 .ts 文件中添加[(ngModel)]="dal_default"并初始化dal_default

this.dal_default = new Date();

现在,如果我尝试使用 formControlName 或这个dal_default变量打印日期的值,我会得到一个奇怪的格式字符串。特别是,如果我打印显示的默认日期,它会正确打印为日期,但是如果我更改日期,我会得到一个字符串(我相信它代表毫秒?FOr 示例,以下是我从日期 12/12/2018 获得的示例:

1543618800000

我唯一做的另一件事是更改app.module.ts中的日期格式,使日期采用 DD/MM/YYYY 格式:

import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material';
import { MomentDateModule, MomentDateAdapter } from '@angular/material-moment-adapter';

export const MY_FORMATS = {
parse: {
dateInput: 'DD/MM/YYYY',
},
display: {
dateInput: 'DD/MM/YYYY',
monthYearLabel: 'MM YYYY',
dateA11yLabel: 'DD/MM/YYYY',
monthYearA11yLabel: 'MM YYYY',
},
};

和内部提供商:

{ provide: MAT_DATE_LOCALE, useValue: 'it' }, 
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: MY_FORMATS }

matdatepicker 以我想要的格式正确显示日期。我不认为这是问题所在,但不能100%确定。
问题出在哪里?

你能为此创建堆栈闪电战的例子吗,它会更好地理解你在做什么,人们会更容易帮助你?

最新更新