生成一個(gè)月日歷(函數(shù)封裝)

整理了一下,這個(gè)日歷的思路是這樣的

  1. 一個(gè)月的總天數(shù)
  2. 一個(gè)月中第一天是星期幾,即可知道前面空幾個(gè)
data(){
  return {
    objmonth:[]
  }
}
methods:{
makeCalendar(year,month){
  let now = new Date()
  let y = now.getFullYear() 
  let m = now.getMonth() 
  let d = now.getDate()
  let now1 = new Date(y,m,d) //當(dāng)天時(shí)間
  let week = now.getDay()
  let endDay = new Date(year,month,0)//下個(gè)月的第0天,也說(shuō)是上個(gè)月的最后一天,實(shí)例化
  let lastDay = endDay.getDate() //*這個(gè)月總天數(shù)
  let weekobj = new Date(year,month-1,1) //第一天實(shí)例化
  let firstWeek = weekobj.getDay() //第1天周幾 即可知道前面空幾個(gè)
  for(let i = 1;i<=lastDay;i++){
                    let now2 = new Date(year,month,i) //每一天都實(shí)例化
                    let _y = _now.getFullYear()
                    let _m = _now.getMonth()
                    let _d = _now.getDate()
                    let _week = _now.getDay()
                    let objday = {
                        ymd: `${_y}-${this.transeNum(_m)}-${this.transeNum(_d)}`
                        day: _d,
                        week: _week,
                        isWeekDay: _week==0 || _week==6,
                        isToday: now1.getTime() == now2.getTime(),
                        isPass: now1.getTime() > now2.getTime()
                    }
                    this.objmonth.push(objday)
                }
                for(let i = 0;i<firstWeek;i++){
                    this.objmonth.unshift('')  //補(bǔ)齊前面的空格
                }
}
transeNum(num){
   return num < 10 ? '0' + num :num   //小于10的數(shù)補(bǔ)0
}
}
mounted() {
   this.makeCalendar(2019,4) //調(diào)用函數(shù)
}
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容