我是使用角质材料数据报警器与妈妈is,这是帮助我使用任何类型的分隔日,月和年(如/,。等等)。
在选择日期和添加正确或几乎正确的格式(即DD/MM/YYYY )时,它工作得很好。
我在我的模块中包括:
export const MY_FORMATS = {
parse: {
dateInput: 'DD/MM/YYYY',
},
display: {
dateInput: 'DD/MM/YYYY',
monthYearLabel: 'MMMM YYYY',
dateA11yLabel: 'MM/DD/YYYY',
monthYearA11yLabel: 'MMMM YYYY',
},
};然后:
providers: [
{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},
{provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},
],当用户以YYYY/MM/DD格式键入日期时会发生问题,它将自动转换为DD/MM/YYYY,这种情况不应该发生,因为它将是不正确的。
如何防止这种情况发生,如何阻止Momentjs转换此格式并将输入保持为无效?
发布于 2019-05-07 10:06:11
没有配置的角度材料数据报警器改变了这个行为。但是,您可以通过添加一个隐藏的输入字段并与数据采集器绑定来实现相同的目标。这是我怎么做的一个例子。
在文件中:
<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文件中:
toFormattedDate(iso: string) {
const date = new Date(iso);
console.log(date);
return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;
}看看我的Stackblitz example。
https://stackoverflow.com/questions/56008827
复制相似问题