如何设置日期时间猫头鹰拾取格式编程?(How to set owl datetime picker

2019-10-30 13:32发布

我一直使用直到最近,这个日期选择器...

https://www.npmjs.com/package/ng-pick-datetime

总的来说这是一个相当不错的项目,即使它并没有在一段时间工作的。 不过,我面临的一个问题吧。 我希望能够改变所代表的格式(而不是实际的数据,这是完全正常的)给用户,并在任何时候可能的。

允许用户更改日期的格式,他们希望他们的方式。 所以格式可以像这些例子:

  • “20-12-2009”
  • “2009/12/20”
  • “2009年12月20”

我从我的后端,它的回报是在所有的显示组件所使用的格式偏好。 表,或只是它可以适用于任何价值。

但是,这个应用程序不提供改变文件格式,抛开法“的setLocale()”中的任何方式。 这不是太大的解决方案,因为这字面翻译日历相应的语言。 因此,根据文档,您可以供电组件 - 与moment.js结合 - 您自己的格式。 有点像这样...

import { NgModule } from '@angular/core';
import { OwlDateTimeModule, OWL_DATE_TIME_FORMATS} from 'ng-pick-datetime';
import { OwlMomentDateTimeModule } from 'ng-pick-datetime-moment';

// See the Moment.js docs for the meaning of these formats:
// https://momentjs.com/docs/#/displaying/format/
export const MY_MOMENT_FORMATS = {
    parseInput: 'l LT',
    fullPickerInput: 'l LT',
    datePickerInput: 'l',
    timePickerInput: 'LT',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY',
};

@NgModule({
    imports: [OwlDateTimeModule, OwlMomentDateTimeModule],
    providers: [
        {provide: OWL_DATE_TIME_FORMATS, useValue: MY_MOMENT_FORMATS},
    ],
})
export class AppExampleModule {
}

它的工作原理,符合市场预期,非常好。 不过,我想能够改变这个programmatively后来......可惜这种情况表明我缺乏编码的理解。 虽然我在技术上可以申请...

@ViewChild('picker') picker: any; 
...
ngAfterViewInit() {
this.picker.datetimeFormat = {
// new format...
}
}

这不是我的终点是可行的,因为我可能会或可能不会有我的窗体上的日期选择器,根据已被点击哪些领域。

文章来源: How to set owl datetime picker format programmatically?