生成一個(gè)月日歷(當(dāng)月)

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

  1. 一個(gè)月的總天數(shù)
  2. 一個(gè)月中第一天是星期幾,即可知道前面空幾個(gè)
data(){
  return {
    objmonth:[]
  }
}
methods:{
makeCalendar(){
  let now = new Date()
  let y = now.getFullYear() 
  let m = now.getMonth() //3 代表4月
  let d = now.getDate()
  let week = now.getDay()
  let endDay = new Date(y,m+1,0)//下個(gè)月的第0天,也說是上個(gè)月的最后一天,實(shí)例化
  let lastDay = endDay.getDate() //*這個(gè)月總天數(shù)
  let weekobj = new Date(y,m,1) //實(shí)例化當(dāng)月第一天
  let firstWeek = weekobj.getDay() //第1天周幾 即可知道前面空幾個(gè)
  for(let i = 1;i<=lastDay;i++){
                    let _now = new Date(y,m,i) //每一天都實(shí)例化
                    let _y = _now.getFullYear()
                    let _m = _now.getMonth()
                    let _d = _now.getDate()
                    let _week = _now.getDay()
                    let objday = {
                        allDate: `${_y}-${this.transeNum(_m+1)}-${this.transeNum(_d)}`,
                        day: _d,
                        week: _week,
                        isWeekDay: _week==0 || _week==6,
                        isToday: d == _d,
                        isPass: _d<d
                    }
                    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() //調(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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