[英]Angular material date picker return Moment object instead of Date
我有一个奇怪的问题,在我的html中我定义了-
<mat-radio-button value="embargoed">
<div>Everyone, limited by date</div>
<mat-form-field *ngIf="data.selected === 'embargoed'">
<mat-label>Available from date</mat-label>
<input matInput [matDatepicker]="picker" #input [(ngModel)]="date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
</mat-radio-button>
在我的comonent我初始化-
date = new Date();
我有一个 OnSubmit 函数——
onSubmit(){
if (this.data.selected === 'embargoed') {
this.data.date = this.date;
}
}
在 debud 我可以看到 this.date 是 Moment 对象而不是 Date 对象,知道为什么吗?
我找到了原因。 在我的app.module.ts
,我声明:
{provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}
来自https://material.angular.io/components/datepicker/overview :
datepicker 期望的值类型取决于应用程序中提供的 DateAdapter 的类型。 例如,NativeDateAdapter 直接与普通的 JavaScript Date 对象一起工作。 但是,当使用 MomentDateAdapter 时,这些值都将是 Moment.js 实例。
日期选择器被构建为与日期实现无关。 这意味着它可以与各种不同的日期实现一起工作。 然而,这也意味着开发人员需要确保为日期选择器提供适当的部分,以便与他们选择的实现一起工作。
this.date = new Date(this.date);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.