El componente en el selector de fecha de material angular:
inputEvent(event, type: number): void {...} changeEvent(event, type: number): void {...} newDateStart: Date = null; endDateStart: Date = null;La plantilla:
<mat-date-range-input [rangePicker]="picker"> <input #fromInput matStartDate placeholder="Start Date" (dateInput)="inputEvent($event, 0)" (dateChange)="changeEvent($event, 0)"> <input #toInput matEndDate placeholder="End Date" (dateInput)="inputEvent($event, 1)" (dateChange)="changeEvent($event, 1)"> </mat-date-range-input>Y el CustomDateAdapter para datepicker:
export class CustomDateAdapter extends NativeDateAdapter { parse(value: any): Date | null { // if ((typeof value === 'string') && (value.indexOf('.') > -1)) { if (typeof value === 'string') { let str: string[] = []; if (value.indexOf('.') > -1) { str = value.split('.'); } else if (value.indexOf(' ') > -1) { str = value.split(' '); } else if (value.indexOf('-') > -1) { str = value.split('-'); } const year = Number(str[2]); const month = Number(str[1]) - 1; const date = Number(str[0]); return new Date(year, month, date); } else if ((typeof value === 'string') && value === '') { return new Date(); } const timestamp = typeof value === 'number' ? value : Date.parse(value); return isNaN(timestamp) ? null : new Date(timestamp); } getFirstDayOfWeek(): number { return 1; } }El formato de fecha es 05.03.2022 donde 05 - día, 03 - mes, 2022 - año.
Uno puede ingresar:
¿Cómo inserto puntos en la fecha y limito el año en el selector de fecha de material angular?
use la fecha de tipo de entrada y eso se encargará de las validaciones.
<input type="date" (dateChange)="changeEvent($event)"> dateChange(e){ let date = new Date(e.target.value); let month = date.getMonth(); let day = date.getDate(); let year = date.getFullYear(); let formatedDate = month +'.' + day + '.'+ year; }