我有一个功能可以检查当月的天数:
function daysInMonth(month, year) {
return new Date(year, month, 0).getDate();
}
var DaysInCurrentMonth = daysInMonth(month +1, year +1);
2016年12月的答案为> 31
。
然后我使用下面的函数用这个答案填写我的日历,但它当然是从星期一开始,而本月的第一天实际上是星期四(12月1日是星期四)。
for (var i = 1; i < DaysInCurrentMonth + 1; i++) {
divDag = document.createElement('div');
divDag.className = 'dagBlokje';
divDag.innerHTML = i;
KalenderDagen.appendChild(divDag);
if (i == Today) {
divDag.className = 'dagBlokje today';
}
}
如何制作,以便在第一天开始?
答案 0 :(得分:0)
请记住,在Date()构造函数中,month的编号为0-11,因此0 = 1月,11 = 12月。
然后,我将封装任何逻辑,以实际获取函数本身的月份数,而不是传递给它的那些。
function daysInMonth(month, year) {
return new Date(year, month+1, 0).getDate();
}
var currentDate = new Date();
var DaysInCurrentMonth = daysInMonth(currentDate.getMonth(), currentDate.getFullYear());
那个循环看起来很好,但是没有关于日历结构的信息,我不能肯定地说。我想象你在混合几个月的数值时会产生任何进一步的问题。