这篇文章主要介绍了微信小程序时间控件picker view的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序时间控件的具体实现代码,供大家参考,具体内容如下

在原来基础上改了点,由于项目需要按照功能需求自己在原有的组件上改写的选择日期时间插件,但后来这个功能取消,所以整理下写下来

wxml:

<view>
 <view>{{year}}-{{month}}-{{day}} {{hour}}:{{minute}}<label>确定</label></view>
 <view>
 <view>年</view>
 <view>月</view>
 <view>日</view>
 <view>时</view>
 <view>分</view>
 </view>
 <picker-view indicator-style="height: 50px;" value="{{value}}" bindchange="bindChange">
  <picker-view-column>
   <view wx:for="{{years}}">{{item}}</view>
  </picker-view-column>
  <picker-view-column>
   <view wx:for="{{months}}">{{item}}</view>
  </picker-view-column>
  <picker-view-column>
   <view wx:for="{{days}}">{{item}}</view>
  </picker-view-column>
   <picker-view-column>
   <view wx:for="{{hours}}">{{item}}</view>
  </picker-view-column>
   <picker-view-column>
   <view wx:for="{{minutes}}">{{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
  })
 },
 
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持爱安网。

最新资讯
我们的遗传基因多大程度地限制了自主意识?

我们的遗传基因多大程

最新研究揭示人类行为很大程度上受到基因的影响,现在我
一枚现代核弹会杀死多少人?

一枚现代核弹会杀死多

2020年,仍有一件事情到目前为止还没有实现,那就是核战争
20万已是特斯拉价格底线?

20万已是特斯拉价格底

经历了多次调价后,希望再交付18万辆特斯拉还会继续降价
华为Mate40和苹果iPhone 12,谁更能打?

华为Mate40和苹果iPho

相信在华为Mate40出现以前,不少人已经在iPhone 12的预
Facebook独立监督委员会开始运作,申诉通道将逐步开放

Facebook独立监督委员

Facebook独立监督委员会从本周四开始接受申诉,该部门有
唯品会,模仿京东,却无法成为京东

唯品会,模仿京东,却无法

屡次跟风,但又屡次错失风口,这样的故事或许还会继续在唯
最新文章
详解Vue的ref特性的使用

详解Vue的ref特性的使

这篇文章主要介绍了详解Vue的ref特性的使用,文中通过
vue学习笔记之slot插槽基本用法实例分析

vue学习笔记之slot插

这篇文章主要介绍了vue学习笔记之slot插槽基本用法,结
vue跳转方式(打开新页面)及传参操作示例

vue跳转方式(打开新页

这篇文章主要介绍了vue跳转方式(打开新页面)及传参操作,
vue学习笔记之过滤器的基本使用方法实例分析

vue学习笔记之过滤器

这篇文章主要介绍了vue学习笔记之过滤器的基本使用方
js获取本日、本周、本月的时间代码

js获取本日、本周、本

本篇文章给大家分享的内容是利用js如何获取本日、本周
node crawler如何添加promise支持

node crawler如何添加

这篇文章主要介绍了node crawler如何添加promise支持,