Angular 4 - 材料2 - md datepicker设置一周的第一天

时间:2017-07-12 12:02:59

标签: angular datepicker angular-material2

如何使用材料2设置一周的第一天?

目前默认是星期日即使我将语言环境设置为hu或其他任何东西..

5 个答案:

答案 0 :(得分:28)

找到了解决方法:

写这个课

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},

答案 1 :(得分:5)

与Béla相当的sam答案,但我必须实现构造函数才能使其正常工作。

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;
  }
}

答案 2 :(得分:3)

constructor(
    private dateAdapter: DateAdapter<Date>
  ) { }

  ngOnInit() {
    this.dateAdapter.setLocale('es');
    this.dateAdapter.getFirstDayOfWeek = () => { return 1; }
  }

答案 3 :(得分:0)

我目前正在使用角度6和相应版本的材料。

但是,由于我使用了moment.js适配器,因此上述解决方案有效,该应用程序停止正常工作。

使用https://github.com/angular/material2/blob/master/src/material-moment-adapter/adapter/moment-date-adapter.ts处的代码并将其注入到模块中,使应用程序能够检测到正确的区域,并将开始日期设置为星期一(我的日期是pt-pt)。

唯一需要做的更改是设置正确的力矩导入。

答案 4 :(得分:0)

只需将以下内容添加到您的app.module.ts中:

  providers: [
    { provide: LOCALE_ID, useValue: 'en-GB' }
  ],