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


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的模仿新浪微博时间的组件
Oct 04 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
Jun 06 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
Sep 03 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
浅谈Angular中ngModel的$render
Oct 24 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
Sep 07 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 Javascript
vue 实现element-ui中的加载中状态
Nov 11 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
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
海贼王:最美的悬赏令!
2020/03/02 日漫
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP会话处理的10个函数
2015/08/11 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
AngularJS的ng-click传参的方法
2017/06/19 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
使用setup.py安装python包和卸载python包的方法
2013/11/27 Python
让Python代码更快运行的5种方法
2015/06/21 Python
Python实现高效求解素数代码实例
2015/06/30 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
python的继承知识点总结
2018/12/10 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
django admin组件使用方法详解
2019/07/19 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
招商专员岗位职责
2014/02/08 职场文书
创业计划书之便利店
2019/09/05 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
CSS基础详解
2021/10/16 HTML / CSS