微信小程序时间控件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 对象定义方法 简单易学
Mar 22 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
详解AngularJS中的表达式使用
Jun 16 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
Mar 21 Javascript
vue-cli 如何打包上线的方法示例
May 08 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
解决axios post 后端无法接收数据的问题
Oct 29 Javascript
vue数据更新UI不刷新显示的解决办法
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
基于PHPExcel的常用方法总结
2013/06/13 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php获取apk包信息的方法
2014/08/15 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
List Installed Software Features
2007/06/11 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JS限制条件补全问题实例分析
2016/12/16 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
python网络编程实例简析
2014/09/26 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python实现图像的垂直投影示例
2020/01/17 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
Django配置Bootstrap, js实现过程详解
2020/10/13 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
承办会议欢迎词
2014/01/17 职场文书
一年级班主任寄语
2014/01/19 职场文书
运动会通讯稿50字
2014/01/30 职场文书
公证委托书大全
2014/04/04 职场文书
html+css合并表格边框的示例代码
2021/03/31 HTML / CSS
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技