date - 使用 Primeng Datepicker 如何仅启用月份的最后一天?

标签 date datepicker primeng

所以我的问题很简单。我希望在日期选择器上启用特定日期,例如任何月份的最后一天,例如 2019 年 6 月 30 日、2019 年 7 月 31 日

Primng 日期选择器

<p-calendar formControlName="date"></p-calendar>

最佳答案

这是满足您要求的简单技巧。

在您的 component.html 中,使用最小和最大日期以及 (onMonthChange) 方法在用户更改时更新日期的 minmax 值这个月。 技巧就是让最小和最大日期等于该月的最后一天。

<p-calendar [(ngModel)]="value" tabindex="0" [maxDate]="maxDateValue" 
    [minDate]="minDateValue" readonlyInput="true" 
    (onMonthChange)="onMonthChange($event)">
</p-calendar>

并在 component.ts 文件中使用以下代码:

public maxDateValue: Date;
public minDateValue: Date;

ngOnInit() {
    this.setMinMaxDate();
}

setMinMaxDate() {
    var nowdate = new Date();
    this.maxDateValue = new Date(nowdate.getFullYear(), nowdate.getMonth() + 1, 0);
    this.minDateValue = new Date(nowdate.getFullYear(), nowdate.getMonth() + 1, 0);
}

// method to handle month change.
onMonthChange(e:any) {
    this.minDateValue = new Date(e.year, e.month, 0);
    this.maxDateValue = new Date(e.year, e.month, 0);
}

您一定在想为什么在初始化时我使用 nowdate.getMonth() + 1,但在 onMonthChange 内仅使用 e.month,不加+1。

你需要经历这个find last and first date of month文章如何获取一个月的最后一个日期和第一个日期并在控制台中打印月份的值并查看差异。那么你就很容易理解了。

关于date - 使用 Primeng Datepicker 如何仅启用月份的最后一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56052471/

相关文章:

Java - 使用正则表达式从字符串中提取日期 - 失败

MySQL自定义日期时间

javascript - 自动设置输入值

Angular 2 - 包含另一个表的可扩展表行

android - Android 应用程序的安全性

c# - 处理 2 月 28 日的 DateTimeOffset

ios - 使用 SwiftUI 如何强制 DatePicker 使用 24 小时日期格式而不是用户设备上的区域设置

yii - Yii 问题中的 CJuiDatePicker 小部件

css - pdatatable 中的内表 - 列的宽度不相等