7

我有一些 JS 代码将代表一个月中天数的 div 堆叠在一个更大的 div 中,该 div 实际上是一个日历。用户可以自由选择月份和年份。我需要为那个月建立一个日历。

例如:如果这个月从星期六开始,那么我需要先构建 5 个空块,然后开始用里面有天数的块填充日历。

如何为给定的月份和年份输入计算此数字?

4

2 回答 2

22

您可以使用Date 对象的getDay函数获取星期几。

要获取本月的第一天,请创建一个新的Date 对象

var year = "2012";
var month = "12";
var day = new Date(year + "-" + month + "-01").getDay();
// 6 - Saturday
console.log(day);

由于您从 1 开始计数,并且星期一是一周的第一天,因此您还必须这样做:

day = (day===0) ? 7 : day
于 2012-12-02T13:43:40.930 回答
0

ES6方式:

const firstDayInMonthIndex = (
  monthIndex = new Date().getMonth(), 
  year = new Date().getFullYear()
) => (
  new Date(`${year}-${monthIndex + 1}-01`).getDay()
)
于 2018-02-08T14:16:50.397 回答