首页 > 解决方案 > 无法在材料日期选择器角度 9 中输入 DD/MM/YYYY 格式

问题描述

我有一个带有以下标记的材料日期选择器

<mat-form-field>
                <mat-label>Start date</mat-label>
                <input #ref  matInput [matDatepicker]="startDate" [(ngModel)]="myChangeRequest.NewStartDate">
                <mat-datepicker-toggle matSuffix [for]="startDate"></mat-datepicker-toggle>
                <mat-datepicker #startDate></mat-datepicker>
              </mat-form-field>

我还指定了 en-GB 语言环境

provide: MAT_DATE_LOCALE, useValue: 'en-GB'

但是当我输入 18/06/2020 时,它说的日期无效。但是,当我从日历中选择相同的日期时,它工作正常,并且显示的值与我输入的完全相同。

那么当我以 DD/MM/YYYY 格式输入相同的日期时出了什么问题。

但是当我输入 2020 年 6 月 18 日时,它工作正常,当我们将焦点移出该字段时,它会将我们输入的内容转换为 2020 年 6 月 18 日

还没想好这是什么奇怪的问题

我在 Angular 9 中工作

标签: angular

解决方案


您需要定义解析格式。为此,声明一个常量:

const DATE_FORMATS: MatDateFormats = {
  parse: {
    dateInput: [
      'DD/MM/YYYY'
    ],
  },
};

然后,使用以下命令覆盖默认值MAT_DATE_FORMATS

  {provide: MAT_DATE_FORMATS, useValue: DATE_FORMATS},

您可以在github.com上查看默认的原生配置


推荐阅读