簡體   English   中英

角度材料日期選擇器返回 Moment 對象而不是 Date

[英]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 實例。

另外: https://material.angular.io/components/datepicker/overview#choosing-a-date-implementation-and-date-format-settings

日期選擇器被構建為與日期實現無關。 這意味着它可以與各種不同的日期實現一起工作。 然而,這也意味着開發人員需要確保為日期選擇器提供適當的部分,以便與他們選擇的實現一起工作。

this.date = new Date(this.date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM