小程序自定义年月日

官方给的案例没有区分平年闰年以及大小月份的天数,这里直接写一个

html:

<view>{{time}}</view>
<view>
  <picker-view indicator-style="height: 50px;" style="width: 100%; height: 300px;" value="{{value}}" bindchange="bindChange">
      <picker-view-column>
        <view wx:for="{{years}}" wx:key="{{years}}" style="line-height: 50px; text-align: center;">{{item}}</view>
      </picker-view-column>
      <picker-view-column>
        <view wx:for="{{months}}" wx:key="{{months}}" style="line-height: 50px; text-align: center;">{{item}}</view>
      </picker-view-column>
      <picker-view-column>
        <view wx:for="{{days}}" wx:key="{{days}}" style="line-height: 50px; text-align: center;">{{item}}</view>
      </picker-view-column>
    </picker-view>
</view>

js

  data: {
    years: ['2020', '2021', '2022', '2023', '2024', '2025', '2026', '2027', '2028', '2029', '2030'],
    months: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
    days: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31'],
    time: []
  },//这里是默认展示2020-1-1
  bindChange(e) {
    let val = e.detail.value
    if (parseFloat(val[1]) == 1) {
      if (parseFloat(val[0]) == 0 || parseFloat(val[0]) == 4 || parseFloat(val[0]) == 8) {
        this.setData({
          days: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29']
        })
      }//0 4 8 实际上是上面数据中的2020 2024 2028,四年一闰
      else {
        this.setData({
          days: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28']
        })
      }
    } //这里处理2月份是28或者29天
    else if (parseFloat(val[1]) == 0 || parseFloat(val[1]) == 2 || parseFloat(val[1]) == 4 || parseFloat(val[1]) == 6 || parseFloat(val[1]) == 7 || parseFloat(val[1]) == 9 || parseFloat(val[1]) == 11) {
      this.setData({
        days: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31']
      })
    } //这里是处理31天的月份
    else {
      this.setData({
        days: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30']
      })
    }//这里是处理30天的月份
      this.setData({
      time: this.data.years[val[0]] + '/' + this.data.months[val[1]] + '/' + this.data.days[val[2]]
    })
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值