当我写一个类似1997年12月24日的日期时,日期dd.MM.yyyy的德语格式是什么,因为该日期对他来说不是正确的,所以验证将失败。例如,当我写1997年12月3日时,他会将该字段更改为1997年3月12日之后将其更改,因为似乎不正确。
当我使用datePicker本身进行选择时,它可以很好地工作,并且我获得了德语格式的正确日期。还有一个问题是有没有办法将datePicker调整为当前使用的语言,因为我将i18n用于德语和英语的所有内容,否则会很奇怪。
app.module.ts
providers: [
{ provide: MAT_DATE_LOCALE, useValue: 'de-DE' },
{ provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },
html:
<mat-form-field class="field-sizing">
<input matInput required [matDatepickerFilter]="dateOfBirthFilter" [matDatepicker]="dateOfBirth"
placeholder="{{ 'REGISTRATION.DATEOFBIRTH' | translate }}" name="dateOfBirth"
formControlName="dateOfBirth"
[ngClass]="{ 'is-invalid': g.dateOfBirth.touched && g.dateOfBirth.errors }" />
<mat-datepicker-toggle matSuffix [for]="dateOfBirth"></mat-datepicker-toggle>
<mat-datepicker #dateOfBirth startView="multi-year" [startAt]="startDate"></mat-datepicker>
<mat-error class="invalid-feedback"
*ngIf="g.dateOfBirth.touched && g.dateOfBirth.errors && g.dateOfBirth.errors.required">
{{ 'REGISTRATION.DATEOFBIRTH' | translate }} {{ 'VALIDATION.REQUIRED' | translate }}
</mat-error>
</mat-form-field>
.TS是不必要的,因为只有过滤器设置。