微信小程序实现日历功能


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 相关文章推荐
求得div 下 img的src地址的js代码
Feb 28 Javascript
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
JavaScript中读取和保存文件实例
May 08 Javascript
setTimeout函数的神奇使用
Feb 26 Javascript
详解vue2路由vue-router配置(懒加载)
Apr 08 Javascript
详谈innerHTML innerText的使用和区别
Aug 18 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
Feb 22 Javascript
JavaScript制作3D旋转相册
Aug 02 Javascript
Vue分页效果与购物车功能
Dec 13 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
php foreach循环中使用引用的问题
2013/11/06 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
javascript比较文档位置
2008/04/08 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
vue element upload实现图片本地预览
2019/08/20 Javascript
python实现用户登录系统
2016/05/21 Python
Python Socket实现简单TCP Server/client功能示例
2017/08/05 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
关于九一八事变的演讲稿2014
2014/09/17 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
政风行风评议工作总结
2014/10/21 职场文书
小学教育见习总结
2015/06/23 职场文书
学习经验交流会总结
2015/11/02 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python