微信小程序一周时间表功能实现


Posted in Javascript onOctober 17, 2019

这篇文章主要介绍了微信小程序一周时间表功能实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

wxml

 <view class="dateView">
    <image class="dateLeft" bindtap="prevWeek" src="../../res/imgs/dateLeft.png"></image>
    <view>{{dateStart}} 至 {{dateEnd}}</view>
    <image class="dateRight" bindtap="nextWeek" src="../../res/imgs/dateRight.png"></image>
   </view>

wxss

.dateView{
 padding:0 32rpx;
 height:98rpx;
 display: flex;
 align-items: center;
 background:#fff;
}
.dateView>image{
 width:50rpx;
 height:50rpx;
}
.dateView>view{
 flex: 1;
 text-align: center;
 color:#333;
 font-size: 34rpx;
}

js

const GetPeriod = require("../../utils/getperiod.js");
Page({

 /**
  * 页面的初始数据
  */
 data: {
  currentTab: 1,
  dateStart:'2019-10-16',
  dateEnd: '2019-10-16',
 },

 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function(options) {
  let that = this;
 
  that.getWeekStartDate(0)
 },

 //获取本周的开始日期
 getWeekStartDate(numDay) {
  let that = this;
  this.now = new Date();
  this.nowYear = this.now.getYear(); //当前年 
  this.nowMonth = this.now.getMonth(); //当前月 
  this.nowDay = this.now.getDate(); //当前日 
  this.nowDayOfWeek = this.now.getDay(); //今天是本周的第几天 
  this.nowYear += (this.nowYear < 2000) ? 1900 : 0;
  let dateStart = GetPeriod.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek + 1 + numDay));
  let dateEnd = GetPeriod.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek + 7 + numDay));
  // console.log(dateStart)
  // 获取今天日期
  let now = GetPeriod.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay));
  now = now.replace(/-/g, "/");
  now = now.substring(5);
  this.setData({
   dateStart: dateStart,
   dateEnd: dateEnd,
   now: now,
   dates: now,
  })
  // 初始化数据(历史纪录)
  var timestamp = Date.parse(new Date(this.data.dateStart));
  timestamp = timestamp / 1000;
  // console.log(timestamp);
  that.setData({
   timestamp: timestamp
  })  
 },

// 点击上一周
prevWeek: function(e) {
this.data.num = this.data.num - 7;
this.getWeekStartDate(this.data.num);
},
// 点击下一周
nextWeek: function(e) {
this.data.num = this.data.num + 7;
this.getWeekStartDate(this.data.num);
 },
})
function constructor1 (){
 this.now = new Date();
 this.nowYear = this.now.getYear(); //当前年 
 this.nowMonth = this.now.getMonth(); //当前月 
 this.nowDay = this.now.getDate(); //当前日 
 this.nowDayOfWeek = this.now.getDay(); //今天是本周的第几天 
 this.nowYear += (this.nowYear < 2000) ? 1900 : 0;
}
//格式化数字
function formatNumber (n) {
 n = n.toString()
 return n[1] ? n : '0' + n
}
//格式化日期
function formatDate(date){
 let myyear = date.getFullYear();
 let mymonth = date.getMonth() + 1;
 let myweekday = date.getDate();
 return [myyear, mymonth, myweekday].map(this.formatNumber).join('-');
}
//获取某月的天数
function getMonthDays (myMonth) {
 let monthStartDate = new Date(this.nowYear, myMonth, 1);
 let monthEndDate = new Date(this.nowYear, myMonth + 1, 1);
 let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
 return days;
}
//获取本季度的开始月份
function getQuarterStartMonth (){
 let startMonth = 0;
 if (this.nowMonth < 3) {
  startMonth = 0;
 }
 if (2 < this.nowMonth && this.nowMonth < 6) {
  startMonth = 3;
 }
 if (5 < this.nowMonth && this.nowMonth < 9) {
  startMonth = 6;
 }
 if (this.nowMonth > 8) {
  startMonth = 9;
 }
 return startMonth;
}
//获取本周的开始日期
function getWeekStartDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek + 1));
}
//获取本周的结束日期
function getWeekEndDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay + (6 - this.nowDayOfWeek + 1)));
}
//获取今天的日期
function getNowDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay));
}
function formatTime(date) {
 var year = date.getFullYear()
 var month = date.getMonth() + 1
 var day = date.getDate()
 var hour = date.getHours()
 var minute = date.getMinutes()
 var second = date.getSeconds()
 return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
module.exports = {
 formatNumber: formatNumber,
 constructor1: constructor1,
 formatDate: formatDate,
 getMonthDays: getMonthDays,
 getQuarterStartMonth: getQuarterStartMonth,
 getWeekStartDate: getWeekStartDate,
 getNowDate: getNowDate,
 getWeekEndDate: getWeekEndDate,
 formatTime: formatTime
}

效果如下

微信小程序一周时间表功能实现

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

Javascript 相关文章推荐
JQuery CSS样式控制 学习笔记
Jul 23 Javascript
自己的js工具 Cookie 封装
Aug 21 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
javascript删除数组元素并且数组长度减小的简单实例
Feb 14 Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 Javascript
Javascript基础教程之for循环
Jan 18 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
js 原型对象和原型链理解
Feb 09 Javascript
js实现PC端根据IP定位当前城市地理位置
Feb 22 Javascript
vue cli使用绝对路径引用图片问题的解决
Dec 06 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
Oct 17 #Javascript
JS工厂模式开发实践案例分析
Oct 17 #Javascript
小程序input数据双向绑定实现方法
Oct 17 #Javascript
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 #Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 #Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 #Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 #Javascript
You might like
Zerg基本策略
2020/03/14 星际争霸
php自动加载机制的深入分析
2013/06/08 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
asp批量修改记录的代码
2008/06/25 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
JavaScript 模块的循环加载实现方法
2015/12/13 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
vue实现单选和多选功能
2017/08/11 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
python多进程并行代码实例
2019/09/30 Python
Python如何定义有可选参数的元类
2020/07/31 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
公司JAVA开发面试题
2015/04/02 面试题
学术会议邀请函范文
2014/01/22 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
python 爬取天气网卫星图片
2021/06/07 Python
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript