如何在服务层的 Formly 表单中格式化 Angular Material 日期选择器不是显示格式

问题描述

我想在 Angular Material 日期选择器上将我的日期值公开为仅日期(“yyyy-MM-dd”)。目前,认日期值为 ISO 格式(包括时间)。

我有一个具有所需设置的入门 Stackblitz 项目。 formly-datepicker.type 是我希望集中转换的地方,以便模型中使用的任何日期都可以为服务层正确格式化。

我以集中方式完成它的尝试之一是使用 Angular ControlValueAccessor,但该值永远不会更新。 ControlValueAccessor Stackblitz

在示例 Stackblitz 中,更改日期并单击提交后,我需要返回的值类似于:{"mydate":"1940-03-11"}(不带时间信息)。

解决方法

所以,我想我有解决方案可以将 var result = [ { CAPR__Provider__r: { Name: "flow 4",CAPR__FirstName__c: "Aksh" } },]; const path = "CAPR__Provider__r.CAPR__FirstName__c"; const first = path.split(".").reduce((acc,key) => acc[key],result[0]); console.log(first); 显示为 mat datepicker 格式。为此,请安装到依赖项 ("yyyy-MM-dd")"@angular/material-moment-adapter": "^11.1.2"(两者都是当前版本)。然后在您的 "moment": "^2.18.1" 文件中导入这两个库。

formly-datepicker-type.component.ts

然后在您的 import {MomentDateAdapter} from '@angular/material-moment-adapter'; import {DateAdapter,MAT_DATE_FORMATS,MAT_DATE_LOCALE} from '@angular/material/core'; 文件中添加如下所示的日期格式。=>

formly-datepicker-type.component.ts

之后通过添加如下提供程序更新 export const MY_FORMATS = { parse: { dateInput: 'LL',},display: { dateInput: 'YYYY-MM-DD',monthYearLabel: 'YYYY',dateA11yLabel: 'LL',monthYearA11yLabel: 'YYYY',}; =>

@Component

最后,日期时间将按需要显示。
注意: 我已经更新了 stackblitz 的示例代码。请查看我的演示链接 =>Stackblitz mat-datepicker Date-Time Format

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...