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

Posted

技术标签:

【中文标题】Angular 4 - 材料 2 - md datepicker 设置一周的第一天【英文标题】:Angular 4 - material 2 - md datepicker set first day of the week 【发布时间】:2017-12-16 20:28:02 【问题描述】:

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

即使我将语言环境设置为 hu 或其他任何内容,当前默认值也是星期天。

【问题讨论】:

你能分享一下matherial2的链接吗? 使用2.0.0-beta.7版本 【参考方案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】:
constructor(
    private dateAdapter: DateAdapter<Date>
  )  

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

【讨论】:

不鼓励仅使用代码的答案。添加一些关于你是如何到达那里的解释。 最后,这是一个对我有用的解决方法(使用@angular/material 10.2.5)。谢谢!【参考方案3】:

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

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;
  

【讨论】:

【参考方案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' 
  ],

【讨论】:

以上是关于Angular 4 - 材料 2 - md datepicker 设置一周的第一天的主要内容,如果未能解决你的问题,请参考以下文章

Angular2中的材料设计组件“不是已知元素”

如何在角度 2 的材料选择框中显示 md-error?

Angular2 材质“md-icon”不是已知元素

如何在 ng-2 材料 <md-input> 字段中的输入开头修剪空格

Angular Material 2 md-sidenav-content 不占满高度

如何覆盖 Angular 2 材质样式?