微信小程序时间控件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 浮动层菜单收藏
Jan 16 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
Apr 04 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
小议JavaScript中Generator和Iterator的使用
Jul 29 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 Javascript
在博客园博文中添加自定义右键菜单的方法详解
Feb 05 Javascript
JS函数本身的作用域实例分析
Mar 16 Javascript
JavaScript原始值与包装对象的详细介绍
May 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 file_get_contents函数轻松采集html数据
2010/04/22 PHP
优化PHP程序的方法小结
2012/02/23 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
Vue关于组件化开发知识点详解
2020/05/13 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
python opencv之SIFT算法示例
2018/02/24 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
Python标准库itertools的使用方法
2020/01/17 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
渡河少年教学反思
2014/02/12 职场文书
品牌服务方案
2014/06/03 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers