微信小程序时间控件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 相关文章推荐
javascript+css 网页每次加载不同样式的实现方法
Dec 27 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
Feb 07 Javascript
JavaScript 高效运行代码分析
Mar 18 Javascript
对frameset、frame、iframe的js操作示例代码
Aug 16 Javascript
javascript实现在线客服效果
Jul 15 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
如何提高javascript加载速度
Dec 26 Javascript
微信小程序自定义toast弹窗效果的实现代码
Nov 15 Javascript
JavaScript 预解析的4种实现方法解析
Sep 03 Javascript
关于Javascript闭包与应用的详解
Apr 22 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
表格展示无限级分类(PHP版)
2012/08/21 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
php开发工具有哪五款
2015/11/09 PHP
用ADODB.Stream转换
2007/01/22 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
puppeteer库入门初探
2019/01/09 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python flask框架post接口调用示例
2019/07/03 Python
PyTorch加载自己的数据集实例详解
2020/03/18 Python
python中rc1什么意思
2020/06/19 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
免税水晶:Duty Free Crystal
2019/05/13 全球购物
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
民事调解书范文
2015/05/20 职场文书
餐厅开业活动方案
2019/07/08 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS