实现日历的一种思路

1. 获取当月第一天是星期几, 当月总天数
  //由Date对象提供的getDay()方法
  var currentTime = new Date(),//当前时间
      currentYear = currentTime.getFullYear(),//当前年份
      currentMonth = currentTime.getMonth(),//当前月份
      currentWeek = new Date(currentYear, currentMonth, 1).getDay(),//当月第一天是周几
      currentTotalDay = new Date(currentYear, currentMonth + 1, 0).getDate();//当月总天数

2.计算在当月显示上个月份或者是上一年12月份的日期号
  //获取上个月或者上一年12月份的总天数
  //当currentMonth=0,得到的为上一年12月份总天数
  var prevDateTotalDay = new Date(currentYear, currentMonth, 0).getDate();
  //根据星期0, 1, 2, 3, 4, 5, 6分别对应周末至周六
  //计算上个月需要展示的日期号
  var prevShowDate = [];
  for(var i = 0; i < currentWeek; i++) {
      prevShowDate.unshift(prevDateTotalDay - i);
  }

3.计算下一月或下一年需要展示的日期号
  //当currentMonth=11,nextDate则为下一年一月份
  //var nextDate = new Date(currentYear, currentMonth + 2, 0)
  var nextShowDate = [],
      nextMonthStartDay = 1;
  //如果已确定当前需要展示的元素个数,比如需要展示42个或者35个
  for(var j = prevShowDate.length + currentTotalDay; j < 42; j++) {
      nextShowDate.push(nextMonthStartDay++);
  }

你可能感兴趣的:(实现日历的一种思路)