微信小程序实现日历功能

时间:2021-05-18

本文实例为大家分享了微信小程序实现日历功能的具体代码,供大家参考,具体内容如下

效果图:

代码:

<view class="calendar"> <view class="selectDate"> <view class="goleft iconfont icon-jianzuo" bindtap="prevMonth"></view> <view class="date-wrap"> {{year}}年{{month}}月 </view> <view class="goright iconfont icon-jianzuo" bindtap="nextMonth"></view> </view> <view class="week"> <view wx:for="{{weekArr}}" wx:for-index="index" wx:for-item="item" wx:key="key" style="width:{{param}}px;height:{{param-17}}px;line-height:{{param-17}}px">{{item}}</view> </view> <view class="date" style='width: {{ param * 7 }}px;'> <block wx:for="{{dateArr}}" wx:for-index="index" wx:for-item="item" wx:key="key"> <view style="{{index ==0?'margin-left:'+ param *firstDay +'px;':''}}width:{{param}}px;height:{{param-10}}px;line-height:{{param-10}}px;" class="{{index+1==day?'today':''}} {{index+1==day&&isClock?'clockOn':''}}"><view class="day">{{item}}</view></view> </block> </view></view><!--end calendar-->data: { year:'', month:'', day:'', weekArr: ['日', '一', '二', '三', '四', '五','六'], dateArr:[], firstDay:'', lastDay:'', param:null, clockNum:3, },getDate: function () { //获取当月日期 var mydate = new Date(); var year = mydate.getFullYear(); var month = mydate.getMonth(); var months = month + 1; this.data.year = year; this.data.month = months; this.data.day = mydate.getDate(); var fist = new Date(year, month, 1); this.data.firstDay = fist.getDay(); var last = new Date(year, months, 0); this.data.lastDay = last.getDate(); this.setData({ year: this.data.year, month: this.data.month, day: this.data.day, firstDay: this.data.firstDay, lastDay: this.data.lastDay }) console.log("今天:" + this.data.day); }, setDate: function () { for (var i = 1; i < this.data.lastDay + 1; i++) { this.data.dateArr.push(i); } this.setData({ dateArr: this.data.dateArr, firstDay: this.data.firstDay }) }, prevMonth:function(){ //上一月 var months=""; var years=""; if(this.data.month ==1){ years=this.data.year-1 this.data.month=12; months=this.data.month; }else{ years=this.data.year; months = this.data.month - 1; } var first = new Date(years, months-1, 1); this.data.firstDay = first.getDay(); var last = new Date(years, months, 0); this.data.lastDay = last.getDate(); this.setData({ month: months, year:years, firstDay: this.data.firstDay, lastDay: this.data.lastDay }) this.data.dateArr = []; for (var i = 1; i < this.data.lastDay + 1; i++) { this.data.dateArr.push(i); } this.setData({ dateArr: this.data.dateArr }) }, nextMonth:function(){ //下一月 var months=""; var years=""; if(this.data.month== 12){ this.data.month=0; months = this.data.month; years = this.data.year+1; }else{ months = this.data.month+1; years = this.data.year; } var months = this.data.month + 1; var first = new Date(years, months-1,1); this.data.firstDay= first.getDay(); var last = new Date(years,months,0); this.data.lastDay= last.getDate(); this.setData({ month: months, year:years, firstDay:this.data.firstDay, lastDay:this.data.lastDay }) this.data.dateArr = []; for (var i = 1; i < this.data.lastDay + 1; i++) { this.data.dateArr.push(i); } this.setData({ dateArr: this.data.dateArr }) },onLoad: function (options) { this.getDate(); this.setDate(); var res = wx.getSystemInfoSync(); this.setData({ param:res.windowHeight/12, }) },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章