是否可以从角度材料中自动格式化日期选择器输入中的日期(时刻)?
我的用例是让用户在输入中键入日期“DDMMYYYY”,如果它是“fr-FR”语言环境的有效日期,则格式与直接使用日历时的格式相同,因此“DD” / MM / YYYY”。例如:03052018> 2018年3月5日
我想为我的应用程序的所有日期选择器执行此操作,因此我想知道是否可以通过扩展MomentDateAdapter
或类似的东西来实现它?实际上,我使用(dateChange)
事件手动完成并将const formatedValue = moment(value, 'DDMMYYYY', 'fr-FR');
绑定到输入
提前致谢!
答案 0 :(得分:0)
最后我使用了一个指令:
import { Directive, ElementRef, HostListener } from '@angular/core';
import * as moment from 'moment';
@Directive({
selector: '[appFormatDate]'
})
export class FormatDateDirective {
constructor(private el: ElementRef) {}
@HostListener('blur')
onBlur() {
const inputValue = this.el.nativeElement.value;
console.log(inputValue);
if (inputValue !== '') {
this.formatDate(inputValue);
}
}
formatDate(value: string) {
const momentDate = moment(value, ['DDMMYYYY', 'D MMMM YYYY'], 'fr-FR'); // Ex : [01012018, 1 janvier 2018]
const formatedValue = momentDate.isValid() ? momentDate.format('DD/MM/YYYY') : value;
console.log(formatedValue);
this.el.nativeElement.value = formatedValue;
}
}