Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 2材质日期选择器-更改格式和语言_Angular_Typescript_Angular Material2 - Fatal编程技术网

Angular 2材质日期选择器-更改格式和语言

Angular 2材质日期选择器-更改格式和语言,angular,typescript,angular-material2,Angular,Typescript,Angular Material2,我试图遵循Angular Material网站上的官方文档: 我想将日期选择器的语言更改为希伯来语,并将格式更改为dd/mm/yyyy 这是my component.html: <md-form-field class="full-width"> <input (click)="picker.open()" [min]="minDate" [max]="maxDate" mdInput r

我试图遵循Angular Material网站上的官方文档:

我想将日期选择器的语言更改为希伯来语,并将格式更改为dd/mm/yyyy

这是my component.html:

<md-form-field class="full-width">
    <input
        (click)="picker.open()"
        [min]="minDate"
        [max]="maxDate"
        mdInput
        readonly
        [mdDatepicker]="picker"
        formControlName="date"
        placeholder="Choose Date">
    <md-datepicker-toggle mdSuffix [for]="picker"></md-datepicker-toggle>
    <md-datepicker touchUi="true" #picker></md-datepicker>
</md-form-field>

我尝试通过在component.ts文件中设置以下设置将语言更改为希伯来语:

constructor(
    dateAdapter: DateAdapter<NativeDateAdapter>,
    ...
 ) {
    dateAdapter.setLocale('he-HE');
 }
构造函数(
dateAdapter:dateAdapter,
...
) {
dateAdapter.setLocale('he-he');
}
现在语言发生了变化(月份名称等),格式改为d/m/yyyy

问题是,当用户选择例如1.7.17时,意味着他选择2017年9月1日,如果用户再次单击日期选择器,则会显示1月的日历


感谢您的帮助

您必须实现解析。我使用moment.js库,下面是我的impl:

    @Injectable()
    export class MyDateAdapterService extends NativeDateAdapter {

      parse(value: any): Date | null {
        if (typeof value === 'number') {
          return new Date(value);
        }

        if (value) {
          const localeData = moment.localeData();
          const format = localeData.longDateFormat('L');
          return moment(value, format).toDate();
        } else {
          return null;
        }
      }
    }
您还必须更改区域设置,例如:

   moment.locale('fr');
并添加您的提供商:

providers: [
  [{provide: DateAdapter, useClass: MyDateAdapterService}]
]

您可以查看这个工作示例。您在代码中的什么位置更改了本地值?(
moment.locale('fr');