如何在每月的第一天开始日历?

时间:2016-12-16 14:13:19

标签: javascript calendar

我有一个功能可以检查当月的天数:

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';
    }
}

如何制作,以便在第一天开始?

1 个答案:

答案 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());

那个循环看起来很好,但是没有关于日历结构的信息,我不能肯定地说。我想象你在混合几个月的数值时会产生任何进一步的问题。