Angular 4 - материал 2 - md datepicker установлен в первый день недели Как установить первый день недели с использованием материала 2? В настоящее время по умолчанию используется воскресенье, даже если я устанавливаю язык в hu или что-то еще. Ответ 1 Обнаружено обходное решение: Напишите этот класс import {NativeDateAdapter} from '@angular/material'; import {Injectable} from '@angular/core'; @Injectable() export class MyDateAdapter extends NativeDateAdapter { getFirstDayOfWeek(): number { return 1; } } Затем импортируйте в app.module, например: {provide: DateAdapter, useClass: MyDateAdapter}, Ответ 2 В общем, тот же ответ, что и у Бела, но мне пришлось реализовать конструктор, чтобы он заработал. import { NativeDateAdapter } from '@angular/material'; import { Injectable } from '@angular/core'; import { Platform } from '@angular/cdk/platform'; @Injectable() export class SwedishDateAdapter extends NativeDateAdapter { constructor() { super('sv-SE', new Platform()); } getFirstDayOfWeek(): number { return 1; } } Ответ 3 constructor( private dateAdapter: DateAdapter<Date> ) { } ngOnInit() { this.dateAdapter.setLocale('es'); this.dateAdapter.getFirstDayOfWeek = () => { return 1; } } Ответ 4 В настоящее время я использую Angular 6 с соответствующей версией материала. Приведенные выше решения работали, однако, так как я использовал адаптер moment.js, приложение перестало работать правильно. Использование кода по адресу https://github.com/angular/material2/blob/master/src/material-moment-adapter/adapter/moment-date-adapter.ts и внедрение его в модуль заставили приложение определить правильный регион и установите начальный день на понедельник (мой был pt-pt). Единственное, что нужно было сделать, это установить правильный момент импорта. Ответ 5 Просто добавьте к вам app.module.ts следующее: providers: [ { provide: LOCALE_ID, useValue: 'en-GB' } ],
Ответ 1 Обнаружено обходное решение: Напишите этот класс import {NativeDateAdapter} from '@angular/material'; import {Injectable} from '@angular/core'; @Injectable() export class MyDateAdapter extends NativeDateAdapter { getFirstDayOfWeek(): number { return 1; } } Затем импортируйте в app.module, например: {provide: DateAdapter, useClass: MyDateAdapter},
Ответ 2 В общем, тот же ответ, что и у Бела, но мне пришлось реализовать конструктор, чтобы он заработал. import { NativeDateAdapter } from '@angular/material'; import { Injectable } from '@angular/core'; import { Platform } from '@angular/cdk/platform'; @Injectable() export class SwedishDateAdapter extends NativeDateAdapter { constructor() { super('sv-SE', new Platform()); } getFirstDayOfWeek(): number { return 1; } }
Ответ 3 constructor( private dateAdapter: DateAdapter<Date> ) { } ngOnInit() { this.dateAdapter.setLocale('es'); this.dateAdapter.getFirstDayOfWeek = () => { return 1; } }
Ответ 4 В настоящее время я использую Angular 6 с соответствующей версией материала. Приведенные выше решения работали, однако, так как я использовал адаптер moment.js, приложение перестало работать правильно. Использование кода по адресу https://github.com/angular/material2/blob/master/src/material-moment-adapter/adapter/moment-date-adapter.ts и внедрение его в модуль заставили приложение определить правильный регион и установите начальный день на понедельник (мой был pt-pt). Единственное, что нужно было сделать, это установить правильный момент импорта.
Ответ 5 Просто добавьте к вам app.module.ts следующее: providers: [ { provide: LOCALE_ID, useValue: 'en-GB' } ],