繁体   English   中英

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

[英]How to make calendar start at first day of month?

我有一个检查当月有几天的功能:

function daysInMonth(month, year) {
   return new Date(year, month, 0).getDate();
}
var DaysInCurrentMonth = daysInMonth(month +1, year +1);

答案是在2016 > 31 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';
    }
}

如何使它从第一天开始?

请记住,在Date()构造函数中,月份从0到11进行编号,因此0 =一月和11 =十二月。

然后,我将封装任何逻辑来实际获取函数本身中月份的天数,而不是传递它的内容。

function daysInMonth(month, year) {
  return new Date(year, month+1, 0).getDate();
}
var currentDate = new Date();
var DaysInCurrentMonth = daysInMonth(currentDate.getMonth(), currentDate.getFullYear());

该循环看起来不错,但是由于您的日历结构没有信息,我不能肯定地说。 我想您可能会因将几个月的数值混淆而产生任何其他问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM