微信小程序实现日历功能


Posted in Javascript onNovember 27, 2018

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

效果图:

微信小程序实现日历功能

微信小程序实现日历功能

代码:

<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,
 })
 },

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

Javascript 相关文章推荐
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
JavaScript 和 Java 的区别浅析
Jul 31 Javascript
JS辨别访问浏览器判断是android还是ios系统
Aug 19 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
基于AGS JS开发自定义贴图图层
Mar 31 Javascript
Angular 开发学习之Angular CLI的安装使用
Dec 31 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
微信小程序签到功能
Oct 31 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
JavaScript实现打砖块游戏
Feb 25 Javascript
微信小程序实现打卡日历功能
Sep 21 #Javascript
微信小程序实现时间预约功能
Nov 27 #Javascript
微信小程序使用component自定义toast弹窗效果
Nov 27 #Javascript
微信小程序自定义底部导航带跳转功能
Nov 27 #Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
Nov 27 #Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 #jQuery
js replace替换字符串同时替换多个方法
Nov 27 #Javascript
You might like
做一个有下拉功能的留言版
2006/10/09 PHP
PHPWind 发帖回帖Api PHP版打包下载
2010/02/08 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
Javascript在IE下设置innerHTML时出现未知的运行时错误的解决方法
2011/01/12 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
Python中random模块生成随机数详解
2016/03/10 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
幼儿园教师培训制度
2014/01/16 职场文书
护士毕业实习感言
2014/03/05 职场文书
办理房产证委托书
2014/09/18 职场文书
工作总结与自我评价
2014/09/18 职场文书
青岛导游词
2015/02/12 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
大学军训通讯稿
2015/07/18 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang