0

我在一个项目中使用了 Angular Material Calendar 并试图阻止选择今天之前的日期,所以我尝试了一个 [min] constratint 但这并不能用 luxon 创建今天的日期来解决问题,所以每天,最小的日期都会移动到美好的一天。

有什么好的方法吗?我在这里隔离了我的日历: https ://stackblitz.com/edit/angular-swrr7s?devtoolsheight=33&file=src/app/date-range-picker-overview-example.html

谢谢

4

2 回答 2

2

在您的 stackblitz 中它不起作用,因为 Date.now() 返回一个毫秒数而不是日期对象的数字。如果您将代码更改为:

today = new Date();

关于 luxon - 这可能无法开箱即用,因为只有两个内置日期适配器:MatNativeDateModule MatMomentDateModule. 您将必须创建自己的可以与 luxon 一起使用的 DateAdapter - 它在 datepicker 文档中有很好的记录。你应该能够以你的那一刻为基础,因为 luxon 似乎从那一刻起借了一点。

于 2021-04-16T14:12:19.593 回答
1

以下方法可以解决您的问题:

在 .ts 文件中

//today's date
todayDate:Date = new Date();

在 .html 文件中

  <mat-form-field>
    <input matInput [matDatepicker]="picker" [min]="todayDate" placeholder="Date" formControlName="date"> 
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <mat-datepicker #picker></mat-datepicker>
  </mat-form-field>
于 2021-04-16T14:19:38.220 回答