我正在尝试在PrimeNG的内设置一个最小和最大日期。我希望“ FROM DATE”输入不超过今天的2周。并且“ TO DATE”输入距今天的日期不超过1年。
这是我的日期字段。
<p-calendar [showIcon]="true" [minDate]="minDate" [readonlyInput]="true" placeholder="From Date" id="setter" ></p-calendar>
<p-calendar [showIcon]="true" [maxDate]="maxDate" [readonlyInput]="true"placeholder="To Date" id="setter"></p-calendar>
根据我的逻辑,这是.ts文件
ngOnInit() {
let today = new Date();
let month = today.getMonth();
let year = today.getFullYear();
let prevMonth = (month === 0) ? 11 : month -1;
let nextMonth = (month === 11) ? 0 : month + 4;
this.minDate = new Date();
this.maxDate = new Date();
this.minDate.setMonth(prevMonth);
this.maxDate.setMonth(nextMonth);
}
答案 0 :(得分:1)
根据您所说的要求,每个日期/时间控件上都需要一个[maxDate]
属性。有一个变量将“从日期”的最大值设置为从现在起不超过两周:
this.fromDateMax = new Date(Date.now() + 12096e5);
另一个变量,用于将“截止日期”的最大日期设置为从现在开始的一年:
this.toDateMax = new Date(new Date().setFullYear(new Date().getFullYear() + 1));
ngOnInit()
中的这两项都将按照您的说明设置适当的限制。
这里是stackblitz供参考,还有我用来获取日期限制的两个SO答案:
答案 1 :(得分:0)
只需要对我的nhOnit()做一点调整即可。现在看起来像这样,并且完全按照我的需要工作。
ngOnInit() {
let today = new Date();
let month = today.getMonth();
let year = today.getFullYear();
let nextMonth = (month === 11) ? 0 : month + 4;
this.minDate = new Date(Date.now() - 12096e5);
this.maxDate = new Date(new Date().setFullYear(new Date().getFullYear() + 1));
this.maxDate.setMonth(nextMonth);
}