1. 獲取當(dāng)月第一天是星期幾, 當(dāng)月總天數(shù)
//由Date對象提供的getDay()方法
var currentTime = new Date(),//當(dāng)前時(shí)間
currentYear = currentTime.getFullYear(),//當(dāng)前年份
currentMonth = currentTime.getMonth(),//當(dāng)前月份
currentWeek = new Date(currentYear, currentMonth, 1).getDay(),//當(dāng)月第一天是周幾
currentTotalDay = new Date(currentYear, currentMonth + 1, 0).getDate();//當(dāng)月總天數(shù)
2.計(jì)算在當(dāng)月顯示上個(gè)月份或者是上一年12月份的日期號
//獲取上個(gè)月或者上一年12月份的總天數(shù)
//當(dāng)currentMonth=0,得到的為上一年12月份總天數(shù)
var prevDateTotalDay = new Date(currentYear, currentMonth, 0).getDate();
//根據(jù)星期0, 1, 2, 3, 4, 5, 6分別對應(yīng)周末至周六
//計(jì)算上個(gè)月需要展示的日期號
var prevShowDate = [];
for(var i = 0; i < currentWeek; i++) {
prevShowDate.unshift(prevDateTotalDay - i);
}
3.計(jì)算下一月或下一年需要展示的日期號
//當(dāng)currentMonth=11,nextDate則為下一年一月份
//var nextDate = new Date(currentYear, currentMonth + 2, 0)
var nextShowDate = [],
nextMonthStartDay = 1;
//如果已確定當(dāng)前需要展示的元素個(gè)數(shù),比如需要展示42個(gè)或者35個(gè)
for(var j = prevShowDate.length + currentTotalDay; j < 42; j++) {
nextShowDate.push(nextMonthStartDay++);
}