微信小程序时间控件picker view使用详解


Posted in Javascript onDecember 28, 2018

本文实例为大家分享了微信小程序时间控件的具体实现代码,供大家参考,具体内容如下

在原来基础上改了点,由于项目需要按照功能需求自己在原有的组件上改写的选择日期时间插件,但后来这个功能取消,所以整理下写下来

微信小程序时间控件picker view使用详解

wxml:

<view class="time_screens">
 <view style="text-align:center;color:#45BCE8">{{year}}-{{month}}-{{day}} {{hour}}:{{minute}}<label style="float:right;margin-right:10px;">确定</label></view>
 <view style="border-top:1px solid #45BCE8;height:25px;font-size:14px;">
 <view class="time-title">年</view>
 <view class="time-title">月</view>
 <view class="time-title">日</view>
 <view class="time-title">时</view>
 <view class="time-title">分</view>
 </view>
 <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
  <picker-view-column class="picker-text">
   <view wx:for="{{years}}" style="line-height: 50px">{{item}}</view>
  </picker-view-column>
  <picker-view-column class="picker-text">
   <view wx:for="{{months}}" style="line-height: 50px">{{item}}</view>
  </picker-view-column>
  <picker-view-column class="picker-text">
   <view wx:for="{{days}}" style="line-height: 50px">{{item}}</view>
  </picker-view-column>
   <picker-view-column class="picker-text">
   <view wx:for="{{hours}}" style="line-height: 50px">{{item}}</view>
  </picker-view-column>
   <picker-view-column class="picker-text">
   <view wx:for="{{minutes}}" style="line-height: 50px">{{item}}</view>
  </picker-view-column>
 </picker-view>
</view>

wxss:

.time-title{
 float:left;width:20%;text-align:center;color:#45BCE8
}
.picker-text{
 text-align:center;
}
/*mask*/
.time_screens {
 
 width: 100%;
 
 position: fixed;
bottom: 0;
 left: 0;
 z-index: 1000;
 opacity: 0.5;
 overflow: hidden;
}

js:

const date = new Date()
const years = []
const months = []
const days = []
const hours = []
const minutes = []
var thisMon = date.getMonth();
var thisDay = date.getDate();
 
for (let i = 2017; i <= date.getFullYear()+1; i++) {
 years.push(i)
}
 
for (let i = date.getMonth(); i <= 11; i++) {
 var k = i;
 if (0 <= i && i < 9) {
  k = "0" + (i+1);
 }else{
  k = (i + 1);
 }
 months.push(k)
}
if (0 <= thisMon && thisMon<9){
 thisMon = "0" + (thisMon + 1);
}else{
 thisMon = (thisMon + 1);
}
if (0 <= thisDay && thisDay<10){
 thisDay ="0"+thisDay;
}
 
var totalDay = mGetDate(date.getFullYear(), thisMon); 
for (let i = 1; i <= 31; i++) {
 var k = i;
 if (0 <= i && i < 10) {
  k = "0" + i
 }
 days.push(k)
}
 
for (let i = 0; i <= 23; i++) {
 var k=i;
 if(0<=i&&i<10){
  k="0"+i
 }
 hours.push(k)
}
for (let i = 0; i <= 59; i++) {
 var k = i;
 if (0 <= i && i < 10) {
  k = "0" + i
 }
 minutes.push(k)
}
function mGetDate(year, month) {
 var d = new Date(year, month, 0);
 return d.getDate();
}
Page({
 data: {
  years: years,
  year: date.getFullYear(),
  months: months,
  month: thisMon,
  days: days,
  day: thisDay,
  value: [1,thisMon-1,thisDay-1,0,0],
  hours: hours,
  hour: "00",
  minutes: minutes,
  minute: "00",
 },
 bindChange: function (e) {
  const val = e.detail.value
  this.setData({
   year: this.data.years[val[0]],
   month: this.data.months[val[1]],
   day: this.data.days[val[2]],
   hour: this.data.hours[val[3]],
   minute: this.data.minutes[val[4]],
  })
  var totalDay = mGetDate(this.data.year, this.data.month); 
  var changeDate=[];
  for (let i = 1; i <= totalDay; i++) {
   var k = i;
   if (0 <= i && i < 10) {
    k = "0" + i
   }
   changeDate.push(k)
  }
  this.setData({
   days: changeDate
  })
 },
 
})

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

Javascript 相关文章推荐
VBScript版代码高亮
Jun 26 Javascript
通过JAVAScript实现页面自适应
Jan 19 Javascript
一些易混淆且不常用的属性,希望有用
Jan 29 Javascript
键盘KeyCode值列表汇总
Nov 26 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
json定义及jquery操作json的方法
Oct 03 Javascript
jQuery实现表格元素动态创建功能
Jan 09 Javascript
纯JS实现简单的日历
Jun 26 Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 Javascript
VUE2实现事件驱动弹窗示例
Oct 21 Javascript
详解Vue前端对axios的封装和使用
Apr 01 Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 11 Javascript
微信小程序时间选择插件使用详解
Dec 28 #Javascript
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 #Javascript
Angular6新特性之Angular Material
Dec 28 #Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 #Javascript
小程序实现抽奖动画
Apr 16 #Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 #Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 #Javascript
You might like
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
详解VUE项目中安装和使用vant组件
2019/04/28 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
在Python中通过threading模块定义和调用线程的方法
2016/07/12 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
印度网上药店:1mg
2017/10/13 全球购物
计算机专业职业规划
2014/02/28 职场文书
决心书标准格式
2014/03/11 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
义诊活动通知
2015/04/24 职场文书
导游词之襄阳古城
2019/09/27 职场文书
总结Python常用的魔法方法
2021/05/25 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python