https://material.angular.io/components/datepicker/overviewide
官网介绍很清楚了,这里记入一下我比较不熟悉的.spa
1. moment js code
Angular 推荐咱们使用 moment js component
若是是全场都用的话,能够全局注入 MatMomentDateModule.orm
若是是想全局用原生的就注入 MatNativeDateModuleblog
想要 override 就在 compoent 层级注入.io
providers: [ { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] }, { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS }, { provide: MAT_DATE_LOCALE, useValue: 'zh-CN' }, //注意 moment 是 zh-CN 和 ng 不同 /.\ ]
or
依赖注入的机制,我感受不是很方便,若是我想在一个 component 内使用 2 种 datepicker 不是不行吗 ? form
用 moment 后,咱们的类型就是 Moment 而不是 Date 了 class
new Date() 变成了 moment()angular
想要替换 display 的格式, 就 override MAT_DATE_FORMATS
export const MY_MOMENT_DATE_FORMATS: MatDateFormats = { parse: { dateInput: 'DD MMM YYYY', // moment format }, display: { dateInput: 'DD MMM YYYY', // moment format monthYearLabel: 'MMM YYYY', dateA11yLabel: 'LL', monthYearA11yLabel: 'MMMM YYYY', }, }; providers: [ { provide: MAT_DATE_FORMATS, useValue: MY_MOMENT_DATE_FORMATS }, ]
想换 locale 就 override MAT_DATE_LOCALE, 注意 moment 使用 zh-CN 而 angular 是 zh-Hans. 不仅是中文,还有其它也不同,本身查查看哦