【发布时间】:2017-12-20 18:04:18
【问题描述】:
Javascript 报告 2 月有 31 天。下面的代码显示第二个月的天数超出了应有的天数。怎么回事?
var currentDate = new Date(2018, 2, 4);
function getDaysInMonth(month, year) {
var date = new Date(year, month, 1);
var days = [];
while (date.getMonth() === month) {
days.push(new Date(date));
date.setDate(date.getDate() + 1);
}
return days;
}
var dayArr = getDaysInMonth(currentDate.getMonth(), currentDate.getFullYear());
alert('month: '+currentDate.getMonth()+' year: '+currentDate.getFullYear()+' days: '+dayArr.length);
【问题讨论】:
-
Date(2018, 2, 4)是 3 月 4 日。在 JavaScript 中,月份是从零开始的 -
不需要小提琴。只需在您的问题中的代码 sn-p 中包含您的代码即可。
-
1 = 2 月........
-
如果这是用于生产脚本(不仅仅是练习),您可能需要考虑使用 JS 状态库(例如 Moment.js),因为它们通常会处理所有奇怪和意外的行为给你。
-
这实际上是 javascript is creating date wrong month 的副本(或许多其他副本中的任何一个)。
标签: javascript jquery html date