如何使用Angular Material启用/禁用特定日期的Angular日期选择器?

问题描述

我需要显示开始日期和结束日期的日期,即如果开始日期是dd/mm/yyyy格式10/09/2020,而结束日期应该是昨天,即09/09/2020和所有剩余的日期都应禁用。

我该如何实现?

 <mat-form-field color="accent" appearance="fill">
              <mat-label>Start Date</mat-label>
              <input matInput [matDatepicker]="picker1"  [max]="tomorrow" [formControl]="startDate">
              <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
              <mat-datepicker #picker1></mat-datepicker>
            </mat-form-field>

          <mat-form-field color="accent" appearance="fill">
            <mat-label>End Date</mat-label>
            <input matInput [matDatepicker]="picker2" [min]="today" max="tomorrow" [formControl]="endDate">
            <mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
            <mat-datepicker #picker2></mat-datepicker>
          </mat-form-field>

解决方法

您可以使用过滤器验证。

<mat-form-field class="example-full-width" appearance="fill">
  <mat-label>Choose a date</mat-label>
  <input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

import {Component} from '@angular/core';

/** @title Datepicker with filter validation */
@Component({
  selector: 'datepicker-filter-example',templateUrl: 'datepicker-filter-example.html',})
export class DatepickerFilterExample {
  myFilter = (d: Date | null): boolean => {
    const day = (d || new Date()).getDay();
    // Prevent Saturday and Sunday from being selected.
    return day !== 0 && day !== 6;
  }
}

官方文档here

中的示例 ,

我想说。在.ts

today=new Date();
tomorrow=new Date(this.today.getTime()+24*60*60*1000);

.html

<input matInput [matDatepicker]="picker" [min]="today" [max]="tomorrow">

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...