Angular 角度:MatDateRange输入过滤器
我已经实现了Angular Material日期选择器,并希望过滤可以拾取的日期。 因此,我希望用户选择一个日期,然后只能在开始日期后21天或更短的时间内选择 我曾考虑使用两个日期字段,但客户希望使用日期范围的外观 但是dateRange似乎没有过滤功能。Angular 角度:MatDateRange输入过滤器,angular,angular-material,mat-datepicker,Angular,Angular Material,Mat Datepicker,我已经实现了Angular Material日期选择器,并希望过滤可以拾取的日期。 因此,我希望用户选择一个日期,然后只能在开始日期后21天或更短的时间内选择 我曾考虑使用两个日期字段,但客户希望使用日期范围的外观 但是dateRange似乎没有过滤功能。 我该如何处理这个问题呢?因此我得到了一个简单的解决方案,我仍然允许用户选择超过21天的时间,然后在第二次选择日期后,只需将其恢复到21天,并将选择器设置为新的结束日期 HTML代码 <mat-date-range-input
我该如何处理这个问题呢?因此我得到了一个简单的解决方案,我仍然允许用户选择超过21天的时间,然后在第二次选择日期后,只需将其恢复到21天,并将选择器设置为新的结束日期 HTML代码
<mat-date-range-input [min]="minDate" [max]="maxDate" [rangePicker]="picker" >
<input matStartDate placeholder="Start date" formControlName="checkin">
<input matEndDate placeholder="End date" formControlName="checkout" [ngModel]="calculateDays()">
</mat-date-range-input>
在10号之前,没有日期范围,所以很多人都会做一个。我想最好的办法就是找一个这样的。角度材质日期选择器的问题是,您无法创建“自定义日期”,因此可以使用Render2和document.query获取日期。我不知道你是否能帮上忙。注:有“更好地实施日期范围”的建议:
calculateDays(): void{
let days = (this.searchForm.value.checkout - this.searchForm.value.checkin) / 86400000;
if(days > 21){
this.searchForm.value.checkout = new Date(this.searchForm.value.checkin);
this.searchForm.value.checkout.setDate(this.searchForm.value.checkout.getDate() + 21);
this.searchForm.controls.checkout.patchValue(this.searchForm.value.checkout);
days = 21;
}
if(days > 0){
this.days = days;
}
}