我试图仅在Angular Material Datepicker(基于他们的文档)中实现Month和Year。我注意到默认情况下是今天。例如,今天的日期是2019年6月13日,而我选择的是2019年5月(月),则返回2019年5月13日。
我现在正在想将日期默认设置为1,这样它将导致2019年5月1日或2月1日或3月1日等。
更新: 我已经通过在组件文件中设置像这样的值来解决了这一部分
this.form = new FormGroup({
date: new FormControl(moment().startOf('month'), validators: [Validators.required]
});
如果我选择了5月31日,并且假设当前月份是6月而没有31号,那么我希望它在6月30日返回,但是会变成6月1日。这是一个错误吗?
答案 0 :(得分:1)
您可以利用monthSelected
事件绑定,这样,只要您选择一个月,就会触发一个方法。
首先,我们将monthSelected
事件绑定到onMonthSelect()
方法。
<mat-form-field>
<input matInput [(ngModel)]="selectedDate" (ngModelChange)="onDateSelect($event)" [matDatepicker]="picker" placeholder="Choose a date">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker (monthSelected)="onMonthSelect($event)" #picker></mat-datepicker>
</mat-form-field>
在您的component.ts上,我们绑定selectedDate
,以便选择每月的第一天。
onMonthSelect(event) {
this.selectedDate = new Date(event.getFullYear(), event.getMonth(), 1);
}
这里是demo。