首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止角质材料6 DatePicker与Momentjs的转换格式?

如何防止角质材料6 DatePicker与Momentjs的转换格式?
EN

Stack Overflow用户
提问于 2019-05-06 16:09:13
回答 1查看 1.6K关注 0票数 1

我是使用角质材料数据报警器与妈妈is,这是帮助我使用任何类型的分隔日,月和年(如/,。等等)。

在选择日期和添加正确或几乎正确的格式(即DD/MM/YYYY )时,它工作得很好。

我在我的模块中包括:

代码语言:javascript
运行
复制
export const MY_FORMATS = {
  parse: {
    dateInput: 'DD/MM/YYYY',
  },
  display: {
    dateInput: 'DD/MM/YYYY',
    monthYearLabel: 'MMMM YYYY',
    dateA11yLabel: 'MM/DD/YYYY',
    monthYearA11yLabel: 'MMMM YYYY',
  },
};

然后:

代码语言:javascript
运行
复制
  providers: [
    {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
    {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},
  ],

当用户以YYYY/MM/DD格式键入日期时会发生问题,它将自动转换为DD/MM/YYYY,这种情况不应该发生,因为它将是不正确的。

如何防止这种情况发生,如何阻止Momentjs转换此格式并将输入保持为无效?

EN

回答 1

Stack Overflow用户

发布于 2019-05-07 10:06:11

没有配置的角度材料数据报警器改变了这个行为。但是,您可以通过添加一个隐藏的输入字段并与数据采集器绑定来实现相同的目标。这是我怎么做的一个例子。

在文件中:

代码语言:javascript
运行
复制
<mat-form-field>
<input matInput #autocomplete placeholder="Please choose a date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>

ts文件中:

代码语言:javascript
运行
复制
toFormattedDate(iso: string) {
  const date = new Date(iso);
  console.log(date);
  return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;
}

看看我的Stackblitz example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56008827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档