微信小程序时间控件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 命名规则 变量命名规则
Feb 25 Javascript
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
Dec 02 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
原创jQuery弹出层插件分享
Apr 02 Javascript
php利用curl获取远程图片实现方法
Oct 26 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
Mar 05 Javascript
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 Javascript
Vue实现导航栏菜单
Aug 19 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/06/07 PHP
php备份数据库类分享
2015/04/14 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
不常用但很实用的PHP预定义变量分析
2019/06/25 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
axios基本入门用法教程
2017/03/25 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
node.js中事件触发器events的使用方法实例分析
2019/11/23 Javascript
express异步函数异常捕获示例详解
2020/11/30 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
python 中的列表解析和生成表达式
2011/03/10 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
python判断设备是否联网的方法
2018/06/29 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
国际象棋商店:The Chess Store
2018/07/09 全球购物
四年大学生活的自我评价范文
2014/02/07 职场文书
高校教师个人总结
2015/02/10 职场文书
教师节寄语2015
2015/03/23 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python