微信小程序日期选择器

 

 1 /* JS代码部分 */
 2
 3 const date = new Date()
 4 const years = []
 5 const months = []
 6 const days = []
 7 const hours = []
 8 const minutes = []
 9 var thisMon = date.getMonth();
10 var thisDay = date.getDate();
11 
12 for (let i = 2017; i <= date.getFullYear() + 1; i++) {
13   years.push(i)
14 }
15 
16 for (let i = date.getMonth(); i <= 11; i++) {
17   var k = i;
18   if (0 <= i && i < 9) {
19     k = "0" + (i + 1);
20   } else {
21     k = (i + 1);
22   }
23   months.push(k)
24 }
25 if (0 <= thisMon && thisMon < 9) {
26   thisMon = "0" + (thisMon + 1);
27 } else {
28   thisMon = (thisMon + 1);
29 }
30 if (0 <= thisDay && thisDay < 10) {
31   thisDay = "0" + thisDay;
32 }
33 
34 var totalDay = mGetDate(date.getFullYear(), thisMon);
35 for (let i = 1; i <= 31; i++) {
36   var k = i;
37   if (0 <= i && i < 10) {
38     k = "0" + i
39   }
40   days.push(k)
41 }
42 
43 for (let i = 0; i <= 23; i++) {
44   var k = i;
45   if (0 <= i && i < 10) {
46     k = "0" + i
47   }
48   hours.push(k)
49 }
50 for (let i = 0; i <= 59; i++) {
51   var k = i;
52   if (0 <= i && i < 10) {
53     k = "0" + i
54   }
55   minutes.push(k)
56 }
57 function mGetDate(year, month) {
58   var d = new Date(year, month, 0);
59   return d.getDate();
60 }
61 Page({
62   data: {
63     years: years,
64     year: date.getFullYear(),
65     months: months,
66     month: thisMon,
67     days: days,
68     day: thisDay,
69     value: [1, thisMon - 1, thisDay - 1, 0, 0],
70     hours: hours,
71     hour: "00",
72     minutes: minutes,
73     minute: "00",
74   },
75   bindChange: function (e) {
76     const val = e.detail.value
77     this.setData({
78       year: this.data.years[val[0]],
79       month: this.data.months[val[1]],
80       day: this.data.days[val[2]],
81       hour: this.data.hours[val[3]],
82       minute: this.data.minutes[val[4]],
83     })
84     var totalDay = mGetDate(this.data.year, this.data.month);
85     var changeDate = [];
86     for (let i = 1; i <= totalDay; i++) {
87       var k = i;
88       if (0 <= i && i < 10) {
89         k = "0" + i
90       }
91       changeDate.push(k)
92     }
93     this.setData({
94       days: changeDate
95     })
96   },
97 
98 })



/* css代码部分 */
.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;
}


/* html代码部分 */
  <view class="time_screens">
    <view style="text-align:center;color:#45BCE8">{{year}}-{{month}}-{{day}}
      <label style="float:left;margin-left:30px;">取消</label>
      <label style="float:right;margin-right:30px;">确定</label>
    </view>
    <view style="border-top:1px solid #45BCE8;height:25px;font-size:14px;">
    </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>
  </view>

/* Json */
{
  "navigationBarTitleText": "XXXX"
}

 

 

posted @ 2018-07-18 11:34  QGqiezi  阅读(2449)  评论(0编辑  收藏  举报