首页 > 热点 > 微信 > 正文

微信小程序日历组件使用方法详解

2024-07-22 01:19:17
字体:
来源:转载
供稿:网友

这个日历采用小程序组件化开发,有兴趣的同学可以引用本组件(怎么引用不多赘述,自行去微信小程序开发api了解)

wxml

<!--pages/components/calender.wxml--><view class='calender'><view class='operate'><text catchtap='reduce'>减少</text><text catchtap="add">增加</text></view><view class='year'><text>{{year}}年</text><text>{{currentMonth}}月</text></view><view class='week'><block wx:for="{{weekArr}}" wx:key="{{index}}"><text>{{item}}</text></block></view><view class='date'><block wx:for="{{dateArr}}" wx:key="{{index}}"><text>{{item-(weekNum-1)<=0?"":item-(weekNum-1)>yearMonth[currentMonth-1]?"":item-(weekNum-1)}}</text></block></view></view>

js

// pages/components/calender.jsComponent({data:{weekArr:["日","一","二","三","四","五","六"],yearMonth:[],rowNum:"",dateArr:[],currentMonth:"",year:"",weekNum:""},created:function(){},attached:function(){let T = new Date()this.setData({currentMonth: T.getMonth() + 1,year: T.getFullYear()})//判断闰年let yeartype = (this.data.year % 4 == 0) && (this.data.year % 100 != 0 || this.data.year % 400 == 0)if ( yeartype ){this.setData({yearMonth: [31, 29 , 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]})}else{this.setData({yearMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]})}let currentMonthDay = this.data.year + "-" + this.data.currentMonth +"-01"let weekStr = ""this.setData({weekNum: new Date(currentMonthDay).getDay(),rowNum: Math.ceil((this.data.yearMonth[this.data.currentMonth] + new Date(currentMonthDay).getDay())/7)})for( let i=0 ; i<this.data.rowNum ; i++ ){for( let j = 0 ; j<7 ; j++ ){this.data.dateArr.push(i*7+j)}}this.setData({dateArr:this.data.dateArr})},methods:{//获取下一个月份add:function(){this.triggerEvent("addone")this.setData({dateArr: []})if (this.data.currentMonth==12 ){this.setData({currentMonth: 1,year:this.data.year+1})}else{this.setData({currentMonth: this.data.currentMonth + 1})}let currentMonthDay = this.data.year + "-" + this.data.currentMonth + "-01"let weekStr = ""this.setData({weekNum: new Date(currentMonthDay).getDay(),rowNum: Math.ceil((this.data.yearMonth[this.data.currentMonth-1] + new Date(currentMonthDay).getDay()) / 7)})for (let i = 0; i < this.data.rowNum; i++) {for (let j = 0; j < 7; j++) {this.data.dateArr.push(i * 7 + j)}}this.setData({dateArr: this.data.dateArr})},//获取上一个月份reduce:function(){this.triggerEvent("reduceone")this.setData({dateArr:[]})if (this.data.currentMonth == 1) {this.setData({currentMonth: 12,year: this.data.year - 1})} else {this.setData({currentMonth: this.data.currentMonth - 1})}let currentMonthDay = this.data.year + "-" + this.data.currentMonth + "-01"let weekStr = ""this.setData({weekNum: new Date(currentMonthDay).getDay(),rowNum: Math.ceil((this.data.yearMonth[this.data.currentMonth-1] + new Date(currentMonthDay).getDay()) / 7)})for (let i = 0; i < this.data.rowNum; i++) {for (let j = 0; j < 7; j++) {this.data.dateArr.push(i * 7 + j)}}this.setData({dateArr: this.data.dateArr})console.log(this.data.dateArr)}}})            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表