微信小程序 时间选择

微信小程序做时间选择器用到两种方法

方法一:使用Vant Weapp中的DatetimePicker

原始样式和加了formatter后的样式:

<view style="flex: 1;">
     <view bindtap="alertDate">结束时间</view>
</view>
<van-datetime-picker wx:if="{{showDate}}" type="date" value="{{date}}" catchtouchmove='true'
    bind:input="onInput" formatter="{{ formatter }}" style="position: absolute; width: 100%; bottom: 0;"></van-datetime-picker>
alertDate() {
    this.setData({
      showDate:true
    })
  },
onInput(options) {
    console.log('onInput',options);
  },
data: {
    date: new Date().getDate(),
    showDate:false,
    formatter(type, value) {
      if (type === 'year') {
        return `${value}年`;
      }
      if (type === 'month') {
        return `${value}月`;
      }
      if(type === 'day') {
        return `${value}日`;
      }
      return value;
    },
  },

每调一次弹出框里的年或月或日,onInput都会执行一次。弹出日期选择框后,并没有默认显示date的日期

方法二:使用小程序原生的picker

<picker mode="date"  fields="year" class="datePicker" value="{{date}}" bindchange="bindChange">结束时间</picker>

 fields:有效值 year,month,day,表示选择器的粒度,当为month时,只显示年月

bindChange(options) {
    console.log('bindChange',options);
  },
date: new Date().getDate(),

页面上初始并不显示picker选择器,但会显示"结束时间",点击文字,弹出日期选择框。弹出选择框后默认显示的是date设定的日期

两种方法的区别:

1。样式,第一种方法加了formatter后的样式与第二种方法相同;

2。第二种方法,日期选择框默认显示date设定的日期,但第一种方法还是显示默认值;

3、第一种每切换一次选择框里的数值,onInput就会触发一次,并且得到的detail里的值是时间戳的形式,需要转化处理,第二种方法只有在点了弹出框的确认按钮时,bindChange方法才会触发。得到的detail值是"2022-05-19"的形式

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值