【uview calendar日历 】如何选择今天之前的数据

在日常工作中,使用uniapp+uview的ui组件,使用日历组件默认是无法选择当前之前的日期,现在讲下解决的方法

设置 最小的可选日期minDate,最大可选日期maxDate
默认选中的日期,mode为multiple或range是必须为数组格式defaultDate
最大展示的月份数量monthNum

提示: 最大展示的月份数量 monthNum ,当monthNum数据太大时 会渲染的超级超级慢,一年内monthNum= 13 还能接受,monthNum= 100 时 得等最少 5秒,等的没脾气,如果 查往年的数据大于一年的,建议不要再往下看了,卡的怀疑人生

<u-calendar
      title="服务日期"
      :show="calendarShow"
      @close="calendarShow = false"
      @confirm="calendarConfirm"
      :defaultDate="calendar.defaultDate"
      :maxDate="calendar.maxDate"
      :minDate="calendar.minDate"
      :monthNum="calendar.monthNum"
    ></u-calendar>

calendarShow: false,
      calendar: {
        minDate: '',
        maxDate: '',
        defaultDate: '',
        monthNum: 13,
      },

// 设置默认日期,最大值为今天,最小值为去年今天
chooseTimed() {
      let date = new Date();
      let year = date.getFullYear();
      let month = date.getMonth() + 1;
      let day = date.getDate();
      if (month <= 9) {
        month = '0' + month;
      }
      if (day <= 9) {
        day = '0' + day;
      }
      let minyear = year - 1;
      this.calendar.minDate = minyear + '-' + month + '-' + day;
      this.calendar.maxDate = year + '-' + month + '-' + day;
      this.calendar.defaultDate = year + '-' + month + '-' + day;
    },
    // 选择当前一个月之内的数据
chooseTimed() {
      let date = new Date();
      let year = date.getFullYear();
      let month = String(date.getMonth() + 1);
      let day = String(date.getDate());
      month = month.padStart(2, '0');
      day = day.padStart(2, '0');
      this.calendar.maxDate = year + '-' + month + '-' + day;
      this.calendar.defaultDate = year + '-' + month + '-' + day;

      let nowTime = date.getTime();
      let preTime = nowTime - 30 * 24 * 60 * 60 * 1000;
      let preDate = new Date(preTime);
      let preYear = preDate.getFullYear();
      let preMonth = String(preDate.getMonth() + 1);
      let preDay = String(preDate.getDate());
      preMonth = preMonth.padStart(2, '0');
      preDay = preDay.padStart(2, '0');
      this.calendar.minDate = preYear + '-' + preMonth + '-' + preDay;
    },

在这里插入图片描述
uview官网

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值