Angular 2材质日期选择器-更改格式和语言
我试图遵循Angular Material网站上的官方文档: 我想将日期选择器的语言更改为希伯来语,并将格式更改为dd/mm/yyyy 这是my component.html: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
<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');
)