Я добавил сборщик угловых материалов на свою страницу.Мне было интересно, можно ли изменить текст ввода с проанализированной даты на что-то более дружественное?например, если пользователь нажимает текущую дату вместо отображения 28/01/2019, она может отображать «Сегодня» или «Вчера» и т. д.
Мой текущий код довольно прост, у меня есть простой инструмент выбора даты в моем HTML-коде, и я сделал дату клиентаАдаптер для установки дат, введенных в Великобритании, все это работает, но мне было интересно, возможен ли синтаксический анализ Сегодня / Вчера и где лучше всего это сделать?
HTML
<div [formGroup]="formGroup">
<mat-form-field>
<input matInput formControlName="date" [matDatepicker]="picker" placeholder="Choose a date" (click)="picker.open()">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
</div>
Адаптер даты
export class CustomDateAdapter extends NativeDateAdapter {
parse(value: any): Date | null {
console.log(value);
if ((typeof value === 'string') && (value.indexOf('/') > -1)) {
const str = value.split('/');
return new Date(Number(str[2]), Number(str[1]) - 1, Number(str[0]), 12);
}
const timestamp = typeof value === 'number' ? value : Date.parse(value);
return isNaN(timestamp) ? null : new Date(timestamp);
}
}