使用德语适配器时,Angular DatePicker会更改输入

时间:2019-05-13 07:33:21

标签: angular angular-material

当我写一个类似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是不必要的,因为只有过滤器设置。

enter image description here

enter image description here

0 个答案:

没有答案