angular - PrimeNg p-calendar date.month 结果错误月份
问题描述
我已经从 primeNg 实现了 p-calendar,当我尝试比较/检查日期时,它将返回错误的月份。
<p-calendar
[locale]="nl"
[inline]="true"
[showOtherMonths]="false"
[showWeek]="true"
[styleClass]="'ic-calendar'">
<ng-template pTemplate="date" let-date>
<span [class.maintenance]="checkDate(date)">{{date.day}}</span>
</ng-template>
</p-calendar>
如果我将 {{date.day}} 更改为 {{date.month}} (或将其添加以仅显示月份),它将导致 5 而不是 6 月份的 6 月份(当时是当前月份)。
在我的打字稿中,我配置了 p 日历:
this.nl = {
firstDayOfWeek: 1,
dayNames: ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'],
dayNamesShort: ['Zon', 'Maa', 'Din', 'Woe', 'Don', 'Vrij', 'Zat'],
dayNamesMin: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
// tslint:disable-next-line: max-line-length
monthNames: [ 'Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December' ],
monthNamesShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec' ],
dateFormat: 'dd/mm/yyyy',
weekHeader: 'Wk'
};
解决方案
在 javascript 中,月份是唯一使用从零开始的索引的月份。
p-calendar 组件中使用的日期对象是自定义对象,而不是日期对象。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
您需要从此对象创建一个新的日期。
例如:
checkDate(date: any) {
const d = new Date(date.year, date.month, date.day);
// do something with the date
}
}
推荐阅读
- angular - 如何通过查询从 Firestore 获取单个文档(我使用的是 Ionic 4)
- android - 有没有办法以编程方式访问我的 Google 电子钱包商家帐户,以便我可以通过手机轻松查看我每天赚多少钱等?
- c# - 如何将整数转换为模型类型?
- node.js - 在 WebDriverIO (node js) 中设置缩放级别
- java - java-如何在循环中找到Hashset中的值的交集?
- mysql - MySQL查询多个值的计数
- .htaccess - 将旧域目录中的所有文件重定向到新域根目录中的相同文件
- node.js - RabbitMQ,在用节点编写的 pub 子模型中请求被拒绝的消息
- apache - 在 ProxyPass 中使用 Nginx 时,Apache 丢弃 ETag 标头
- visual-studio-2010 - 获取推送未知的传输错误