微信小程序时间控件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下过滤数组重复值的代码
Sep 10 Javascript
javascript 写类方式之九
Jul 05 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
Dec 18 Javascript
js实现PC端和移动端刮卡效果
Mar 27 Javascript
初识 Vue.js 中的 *.Vue文件
Nov 22 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 Javascript
javascript+css实现俄罗斯方块小游戏
Jun 28 Javascript
JS的深浅复制详细
Oct 16 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 邮件发送问题解决
2014/03/22 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
Prototype Date对象 学习
2009/07/12 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
Javascript中神奇的this
2016/01/20 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
投资合作协议书范本
2014/04/17 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
英文慰问信范文
2015/03/24 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
行政介绍信范文
2015/05/04 职场文书
2016春季运动会前导词
2015/11/25 职场文书
《搭石》教学反思
2016/02/18 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
Win11 Build 25179预览版发布(附更新内容+ISO官方镜像下载)
2022/08/14 数码科技