[英]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.