微信小程序时间控件picker view使用详解

时间:2021-05-18

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

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

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;}.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 }) }, })

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章