小程序模板网

github精选:微信小程序实现简单的日历

2017-12-08 缠齿羊

if you have ever thought how to accomplish a simple calendar. you'll konw what I'm talking about

 
 
 

核心问题

每个月有多少天?

- 1月,3月,5月,7月,8月,10月,12月,都是31天
- 2月平年是28天,闰年是29天
- 其他月份:4月,6月,9月,11月

每个月的第一天是星期几?

function firstDay(date) {
  return new Date(date + '-01').getDay()
}

核心函数

判断闰年还是平年

function is_leap(year) {
  return year % 400 === 0  || year % 4 === 0 && year % 100 !== 0 ? true : false
}

获取某一年各月的天数

function m_days(year) {
  return [31,28+is_leap(year),31,30,31,30,31,31,30,31,30,31]
}

获取某年某月的第一天是星期几

function firstDay(date) {
  return new Date(date + '-01').getDay()
}

获取每个月的天数数组

function generateDays(date) {
  var year  = date.split('-')[0]
  var month = date.split('-')[1] - 1
  var arr = []
  //根据某年某月的第一天是星期几来填充空值
  for(let j = 0; j < firstDay(date); j++) {
    arr.push({value: '', num: ''})
  }
  for(let i = 0; i < m_days(year)[month]; i++) {
     let value = year + '-' + addZero(month+1) + '-' + addZero(i+1)
     arr.push({
         num: addZero(i+1),
         value: value,
    })
  }
  return arr
}
项目地址:https://github.com/wardenger/wx-calendar 
项目下载:wx-calendar-master (1).zip


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/18094.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询