我以这种方式使用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()
它一直正常工作,直到我决定在日期选择器中添加默认显示值。我所做的就是在[(ngModel)]="dal_default"
标签内添加input
,并在.ts文件中初始化dal_default
:
this.dal_default = new Date();
现在,如果我尝试使用formControlName或此dal_default
变量打印Date的值,则会得到一个奇怪的格式字符串。特别是,如果我打印显示的默认日期,它将正确打印为日期,但是如果我更改日期,则会得到一个字符串(我相信它代表毫秒吗?)。举个例子,以下是我从2018年12月12日获得的那一个:
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%确定。
有什么问题吗?
答案 0 :(得分:0)
您可以为此创建stackblitz示例吗?了解您在做什么会更好,并且人们可以更轻松地为您提供帮助?