国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

用代碼開發一個微信小程序日歷插件!

2020-03-21 16:28:54
字體:
來源:轉載
供稿:網友

最近做小程序開發,出于練手,也是工作需要,就做了個微信小程序的類似于酒店預訂的日歷插件。

先上圖;

代碼,微信小程序,小程序開發,日歷插件

這個插件分為上下兩部分,上邊是tab欄,會根據當前的日期自動定位到當前,并展示以后7天的日期,下邊為內容展示,隨tab欄變化而變化。

思路:

首先用new Data()時間對象初始化時間,獲取當前的日期,用new Date(Date.UTC(year, month - 1, 1)).getDay()獲取每個月的第一天是星期幾。

  // 計算每月第一天是星期幾    function getFirstDayOfWeek(year, month) {    return new Date(Date.UTC(year, month - 1, 1)).getDay();    }    const date = new Date();    const cur_year = date.getFullYear();    const cur_month = date.getMonth() + 1;    const cur_date=date.getDate();    const weeks_ch = ['日', '一', '二', '三', '四', '五', '六'];

利用構造函數生成數據,一會用。

//利用構造函數創建對象    function calendar(date,week){      this.date=cur_year+'-'+cur_month+'-'+date;      if(date==cur_date){        this.week = "今天";      }else if(date==cur_date+1){        this.week = "明天";      }else{        this.week = '星期' + week;      }    }

使用for循環生成json數據:

for(var i=1;i<=monthLength;i++){      //當循環完一周后,初始化再次循環      if(x>6){        x=0;      }      //利用構造函數創建對象      that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0])      x++;    }

這里因為一周有7天,所以當x>6的時候,重置為0。

最后展示部分源碼

var that=this;    function getThisMonthDays(year, month) {      return new Date(year, month, 0).getDate();    }  // 計算每月第一天是星期幾    function getFirstDayOfWeek(year, month) {    return new Date(Date.UTC(year, month - 1, 1)).getDay();    }    const date = new Date();    const cur_year = date.getFullYear();    const cur_month = date.getMonth() + 1;    const cur_date=date.getDate();    const weeks_ch = ['日', '一', '二', '三', '四', '五', '六'];    //利用構造函數創建對象    function calendar(date,week){      this.date=cur_year+'-'+cur_month+'-'+date;      if(date==cur_date){        this.week = "今天";      }else if(date==cur_date+1){        this.week = "明天";      }else{        this.week = '星期' + week;      }    }    //當前月份的天數    var monthLength= getThisMonthDays(cur_year, cur_month)    //當前月份的第一天是星期幾    var week = getFirstDayOfWeek(cur_year, cur_month)    var x = week;    for(var i=1;i<=monthLength;i++){      //當循環完一周后,初始化再次循環      if(x>6){        x=0;      }      //利用構造函數創建對象      that.data.calendar[i] = new calendar(i, [weeks_ch[x]][0])      x++;    }    //限制要渲染的日歷數據天數為7天以內(用戶體驗)    var flag = that.data.calendar.splice(cur_date, that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length:7)    that.setData({      calendar: flag    })    //設置scroll-view的子容器的寬度    that.setData({      width: 186 * parseInt(that.data.calendar.length - cur_date <= 7 ? that.data.calendar.length : 7)    })

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 廊坊市| 潢川县| 连平县| 长汀县| 班戈县| 江阴市| 蕉岭县| 新闻| 郑州市| 波密县| 长阳| 湟中县| 仁寿县| 楚雄市| 濮阳县| 榆社县| 武山县| 大英县| 于都县| 平泉县| 谢通门县| 杭州市| 屏山县| 广汉市| 灌南县| 竹山县| 灵山县| 芒康县| 温宿县| 昔阳县| 宿迁市| 赣榆县| 特克斯县| 汽车| 民县| 陆良县| 临湘市| 泸州市| 武隆县| 思茅市| 平乡县|