微信小程序时间控件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实现运行代码需要刷新的解决方法
Aug 18 Javascript
jQuery LigerUI 使用教程入门篇
Jan 18 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
ie与ff下的event事件使用介绍
Nov 25 Javascript
asm.js使用示例代码
Nov 28 Javascript
用NODE.JS中的流编写工具是要注意的事项
Mar 01 Javascript
第二章之Bootstrap 页面排版样式
Apr 25 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
Nov 09 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
vue页面跳转实现页面缓存操作
Jul 22 Javascript
vue首次渲染全过程
Apr 21 Vue.js
微信小程序时间选择插件使用详解
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学习笔记之二
2011/01/17 PHP
PHP实现的购物车类实例
2015/06/17 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
js函数调用常用方法详解
2012/12/03 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
vue2.0+webpack环境的构造过程
2016/11/08 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
ES6新特性之变量和字符串用法示例
2017/04/01 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
python网络编程实例简析
2014/09/26 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
大学学雷锋活动总结
2014/06/26 职场文书
法人委托书范本
2014/09/15 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang