微信小程序实现日历功能


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 相关文章推荐
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 Javascript
Grid得到选择行数据的方法总结
Jan 17 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
Feb 02 Javascript
JavaScript获取和设置CheckBox状态的简单方法
Jul 05 Javascript
require.js深入了解 require.js特性介绍
Sep 04 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
Apr 22 Javascript
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
微信小程序图片左右摆动效果详解
Jul 13 Javascript
浅谈layui 表单元素的选中问题
Oct 25 Javascript
JS实现滑动插件
Jan 15 Javascript
JavaScript代理模式原理与用法实例详解
Mar 10 Javascript
使用javascript解析二维码的三种方式
Nov 11 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
php 日期时间处理函数小结
2009/12/18 PHP
php中神奇的fastcgi_finish_request
2011/05/02 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
关于php中一些字符串总结
2016/05/05 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
JavaScript修改css样式style
2008/04/15 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
extern是什么意思
2016/03/10 面试题
nohup的用法
2014/08/10 面试题
珍珠鸟教学反思
2014/02/01 职场文书
个人授权委托书
2014/04/03 职场文书
励志演讲稿大全
2014/08/21 职场文书
2014年销售部工作总结
2014/12/01 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js