从当前日计算后面7天的简单周历(无翻页) 纯手打

 因为项目中有个需求就是需要展示进他的日期和星期来进行预约排版。 但是在网上找了一些插件都很大,不是很喜欢 于是自己写了一个简单的js功能实现。

// 通过指定的时间来获取星期 后返回中文
function getWeek(year, month, day) {
  let weekInt = new Date(year, month, day).getDay();
  switch (weekInt) {
    case 1:
      return "周一"
      break;
    case 2:
      return "周二"
      break;
    case 3:
      return "周三"
      break;
    case 4:
      return "周四"
      break;
    case 5:
      return "周五"
      break;
    case 6:
      return "周六"
      break;
    case 0:
      return "周天"
      break;
  }
}
/**
 * 获取当前日起的一个星期
 * 
 */
function nowDayWeek() {
  let currentPages = this;
  let data = []; //返回的数据
  let date = new Date(); //new一个date实例
  let nowDay = date.getDate(); //当前日
  let year = date.getFullYear(); //四位数字返回年份。
  let month = date.getMonth(); //返回值是 0(一月) 到 11(十二月) 之间的一个整数。
  for (let i = 0; i < 7; i++) {
    // new Date(year, month + 1, 0); 可以获取当前月份的最大天数
    if (nowDay + i > new Date(year, month + 1, 0).getDate()) {
      // 如果当前日超过本月份最大天数则跳出循环
      break
    }
    data[i] = {
      dayNum: nowDay + i,
      week: getWeek(year, month, nowDay + i)
    }
  };
  //判断数据够7天?
  if (data.length != 7) {
    // 计算差多少天的数据
    let length = 7 - data.length;
    // 因为数据不够是因为超出最大天数造成 所以从1开始进行循环
    // 从1号开始赋值和计算周几
    for (let i = 1; i <= length; i++) {
      data[data.length] = {
        dayNum: i,
        week: getWeek(year, month + 1, i)
      }
    }
  }
  return data;
}

 

你可能感兴趣的:(js)