angular - 无法在材料日期选择器角度 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 中工作
解决方案
您需要定义解析格式。为此,声明一个常量:
const DATE_FORMATS: MatDateFormats = {
parse: {
dateInput: [
'DD/MM/YYYY'
],
},
};
然后,使用以下命令覆盖默认值MAT_DATE_FORMATS
:
{provide: MAT_DATE_FORMATS, useValue: DATE_FORMATS},
您可以在github.com上查看默认的原生配置
推荐阅读
- asp.net - 我正在尝试在 asp dot net 项目中进行卡片的水平排列
- apache-kafka - 运行 Confluent Platform 时缺少配置文件
- r - 在 R 中删除周期图中的轴缩放
- c++ - 基于类型未指定范围的循环如何在 C++ 中工作?
- google-sheets - 使用间接公式引用另一张纸
- c++ - 在 Sublime Text 中使用库
- reactjs - React Redux Firebase 在身份验证后刷新之前不加载道具
- java - java spring boot中的输入验证模式
- c# - 如何根据类数据类型分支代码
- python - 如何在不覆盖子实例的情况下使用自己的实例变量调用父类的函数?