微信小程序时间控件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 相关文章推荐
js checkbox(复选框) 使用集锦
Apr 28 Javascript
jquery实现metro效果示例代码
Sep 06 Javascript
jQuery动态添加、删除元素的方法
Jan 09 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
浅谈Javascript Base64 加密解密
Dec 28 Javascript
json+jQuery实现的无限级树形菜单效果代码
Aug 27 Javascript
原生js实现可爱糖果数字时间特效
Dec 30 Javascript
vuejs指令详解
Feb 07 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
浅析微信扫码登录原理(小结)
Oct 29 Javascript
微信小程序实现下拉刷新动画
Jun 21 Javascript
基于vue 动态菜单 刷新空白问题的解决
Aug 06 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
德生PL660的电路分析和打磨
2021/03/02 无线电
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
javascript数组组合成字符串的脚本
2021/01/06 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
javascript闭包的理解和实例
2010/08/12 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
js简单抽奖代码
2015/01/16 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
Python数据类型详解(一)字符串
2016/05/08 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
中文教师求职信
2014/02/22 职场文书
监察建议书范文
2014/03/12 职场文书
大学生安全责任书
2014/07/25 职场文书
党员评议个人总结
2014/10/20 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
离婚案件被告代理词
2015/05/23 职场文书
物业保洁员管理制度
2015/08/05 职场文书