Angular mat-date-range-input 自定义日期输入
Angular mat-date-range-input custom dateInput
我在这里创建了一个演示:https://stackblitz.com/edit/angular-ivy-8bvyfh?file=src/app/app.module.ts
我创建了 mat-date-range-input
,它与 MomentDateAdapter
一起使用。当我 select 来自不同月份的日子都很好:
但是如果我从同月开始 select 天,预计该月将被省略。所以不是:
我想看看:“10 月 24 日至 27 日”。我怎样才能实现它?
演示在此 Stackblitz Link
一种解决方法是您可以使用模板引用变量替换输入中的文本。
<mat-date-range-input [rangePicker]="picker">
<input
#dateRangeStart
matStartDate
placeholder="Start date"
(blur)="dateRangeChange(dateRangeStart, dateRangeEnd)"
(dateChange)="dateRangeChange(dateRangeStart, dateRangeEnd)"
/>
<input
matEndDate
placeholder="End date"
#dateRangeEnd
(dateChange)="dateRangeChange(dateRangeStart, dateRangeEnd)"
/>
/>
然后在 component.ts 文件中你可以这样做
dateRangeChange(s, e) {
s.value = s.value.split(' ')[0];
}
我在这里创建了一个演示:https://stackblitz.com/edit/angular-ivy-8bvyfh?file=src/app/app.module.ts
我创建了 mat-date-range-input
,它与 MomentDateAdapter
一起使用。当我 select 来自不同月份的日子都很好:
但是如果我从同月开始 select 天,预计该月将被省略。所以不是:
我想看看:“10 月 24 日至 27 日”。我怎样才能实现它?
演示在此 Stackblitz Link
一种解决方法是您可以使用模板引用变量替换输入中的文本。
<mat-date-range-input [rangePicker]="picker">
<input
#dateRangeStart
matStartDate
placeholder="Start date"
(blur)="dateRangeChange(dateRangeStart, dateRangeEnd)"
(dateChange)="dateRangeChange(dateRangeStart, dateRangeEnd)"
/>
<input
matEndDate
placeholder="End date"
#dateRangeEnd
(dateChange)="dateRangeChange(dateRangeStart, dateRangeEnd)"
/>
/>
然后在 component.ts 文件中你可以这样做
dateRangeChange(s, e) {
s.value = s.value.split(' ')[0];
}