7

月の日を表すdivを、実際にはカレンダーであるより大きなdivにスタックするJSコードがいくつかあります。ユーザーは月と年を自由に選択できます。その月のカレンダーを作成する必要があります。

たとえば、今月が土曜日から始まる場合は、最初に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 に答える