При вводе даты в угловом материале дата обрабатывается в формате США. - PullRequest
0 голосов
/ 09 января 2019

При заполнении даты в поле ввода (не с помощью самого средства выбора даты) дата считается форматом США. Например, после ввода в поле ввода - 10/01/2019 оно становится 01/10/2019, а при открытии средства выбора даты - первое октября 2019 года.

при выборе даты с помощью средства выбора даты проблема не возникает, а выбранная дата отображается как дд / мм / гггг

Ответы [ 2 ]

0 голосов
/ 09 января 2019

UPDATE В функции форматирования была обнаружена «ошибка» - нужна скобка в ('0' + (date.getMonth () + 1)). Slice (-2) -

просто создайте DateAdapter

import {NativeDateAdapter,DateAdapter} from '@angular/material';

export class MyDateAdapter extends NativeDateAdapter{
  parse(value: string) {
    let it=value.split('/');
    if (it.length==3)
    return new Date(+it[2],+it[1]-1,+it[0],12)
  }

  format(date: Date, displayFormat: Object) {
    return ('0'+date.getDate()).slice(-2)+'/'+
           ('0'+(date.getMonth()+1)).slice(-2)+'/'+date.getFullYear()
  }
}

Тогда используйте в качестве провайдера

@Component({
  selector: 'datepicker-formats-example',
  templateUrl: 'datepicker-formats-example.html',
  styleUrls: ['datepicker-formats-example.css'],
    providers: [
    {provide: DateAdapter, useClass: MyDateAdapter}
  ],

})
export class DatepickerFormatsExample {
  date = new FormControl(new Date(Date.now()));
}

см. В

stackblitz

0 голосов
/ 09 января 2019

Если вы используете угловой инструмент выбора даты, вы можете переопределить локаль по умолчанию США. см. эту ссылку: https://material.angular.io/components/datepicker/overview#internationalization

Вам необходимо установить useValue на fr-FR или другую локаль, которая использует дд / мм / гггг

@NgModule({
  providers: [
    {provide: MAT_DATE_LOCALE, useValue: 'fr-FR'},
  ],
})
export class MyApp {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...