Подтвердить что ты не робот

Angular 4 - материал 2 - md datepicker установлен в первый день недели

Как установить первый день недели с использованием материала 2?

В настоящее время по умолчанию используется воскресенье, даже если я устанавливаю язык в hu или что-то еще.

4b9b3361

Ответ 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' }
  ],