微信小程序当前时间时段选择器插件使用方法详解


Posted in Javascript onDecember 28, 2018

本文实例为大家分享了微信小程序当前时间时段选择器的实现代码,供大家参考,具体内容如下

DEMO效果图

微信小程序当前时间时段选择器插件使用方法详解

插件思路

准备工作

  1. 获取当前时间,同时获取当前的年、月、日、周几;
  2. 创建处理日期数字的函数;
  3. 创建格式化日期的函数;
  4. 创建获取某月天数的函数;
  5. 创建获取季度开始的月份函数。

获取时段

  1. 创建获取当天的时段函数;
  2. 创建获取本周的时段函数;
  3. 创建获取本月的时段函数;
  4. 创建获取本季度的时段函数;
  5. 创建获取本年的时段函数;
  6. 创建自定义时段函数。

准备阶段的JS

constructor() {
 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;
}
//格式化数字
formatNumber(n) {
 n = n.toString()
 return n[1] ? n : '0' + n
}
//格式化日期
formatDate(date) {
 let myyear = date.getFullYear();
 let mymonth = date.getMonth() + 1;
 let myweekday = date.getDate();
 return [myyear, mymonth, myweekday].map(this.formatNumber).join('-');
}
//获取某月的天数
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;
}
//获取本季度的开始月份
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;
}

时段函数JS

//获取今天的日期
 getNowDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay));
 }
 //获取本周的开始日期
 getWeekStartDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay - this.nowDayOfWeek + 1));
 }
 //获取本周的结束日期
 getWeekEndDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.nowDay + (6 - this.nowDayOfWeek + 1)));
 }
 //获取本月的开始日期
 getMonthStartDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, 1));
 }
 //获取本月的结束日期
 getMonthEndDate() {
 return this.formatDate(new Date(this.nowYear, this.nowMonth, this.getMonthDays(this.nowMonth)));
 }
 //获取本季度的开始日期
 getQuarterStartDate() {
 return this.formatDate(new Date(this.nowYear, this.getQuarterStartMonth(), 1));
 }
 //获取本季度的结束日期 
 getQuarterEndDate() {
 return this.formatDate(new Date(this.nowYear, this.getQuarterStartMonth() + 2, this.getMonthDays(this.getQuarterStartMonth() + 2)));
 }
 //获取本年的开始日期
 getYearStartDate() {
 return this.formatDate(new Date(this.nowYear, 0, 1));
 }
 //获取本年的结束日期
 getYearEndDate() {
 return this.formatDate(new Date(this.nowYear, 11, 31));
 }

使用方法

1.引入getperiod.js

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

2.使用getperiod.js

this.time = new GetPeriod();

//获取本年的结束日期
let end = this.time.getYearEndDate();

项目地址

微信小程序—-时段选取插件

git clone git@github.com:Rattenking/GetPeriod.git

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

Javascript 相关文章推荐
jQuery创建插件的代码分析
Apr 14 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
常用的JavaScript WEB操作方法分享
Feb 28 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
浅谈Angular中ngModel的$render
Oct 24 Javascript
详解Weex基于Vue2.0开发模板搭建
Mar 20 Javascript
Angularjs2不同组件间的通信实例代码
May 06 Javascript
详解使用create-react-app快速构建React开发环境
May 16 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
Feb 08 Javascript
js简单的分页器插件代码实例
Sep 11 Javascript
Angular6新特性之Angular Material
Dec 28 #Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 #Javascript
小程序实现抽奖动画
Apr 16 #Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 #Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 #Javascript
小程序文字跑马灯效果
Dec 28 #Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 #Javascript
You might like
咖啡语言
2021/03/03 咖啡文化
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
php生成excel列序号代码实例
2013/12/24 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
python3正则提取字符串里的中文实例
2019/01/31 Python
python实现的发邮件功能示例
2019/09/11 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
python3中编码获取网页的实例方法
2020/11/16 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
给民警的表扬信
2014/01/08 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
优秀教师推荐材料
2014/12/16 职场文书
文明单位创建材料
2014/12/24 职场文书
政协常委会议主持词
2015/07/03 职场文书
Python中的变量与常量
2021/11/11 Python