Ant Design 控制时间选择DatePicker禁用某些时间的操作

   function range(start, end) {

      const result:any[] = [];

      // eslint-disable-next-line no-plusplus

      for (let i = start; i < end; i++) {

        result.push(i);

      }

      return result;

    }

//控制禁用天数

    function disabledDate(curr) {

      // Can not select days before today and today

      //extendProps.subDay 也可以在流程中心——表单编辑设置前多少天不让选择

      //控制前1天之前或者30天以后不让选

      return (curr && curr < moment().subtract(extendProps.subDay||1,'day').endOf('day'))||(curr && curr > moment().add(30,'day'))

    }

//控制禁用小时、分钟、秒数 位置

    function disabledDateTime(cur) {

      const hour = moment().format('HH');

      const min = moment().format('mm');

      const ss = moment().format('ss')

      if (cur) {

        //如果选择时间为当前时间

        if (cur.format('YYYY-MM-DD').valueOf() === moment().format('YYYY-MM-DD').valueOf()) {

          //如果选择小时位为当前时间小时位

          if (cur.format('HH').valueOf() === moment().format('HH').valueOf()) {

            //如果选择分钟位为当前时间分钟位

            if (cur.format('mm').valueOf() === moment().format('mm').valueOf()) {

              //则当前时间之前的 小时位、分钟位、秒位都不能选择

              return {

                disabledHours: () => range(0, 24).splice(0,Number(hour)),

                disabledMinutes: () => range(0, 60).splice(0,Number(min)),

                disabledSeconds: () => range(0, 60).splice(0,Number(ss))

              }

            }

            //否则当前时间的小时位、分钟都不能选择、秒位可以任意选择

            return {

              disabledHours: () => range(0, 24).splice(0,Number(hour)),

              disabledMinutes: () => range(0, 60).splice(0,Number(min)),

            }

          }

          //否则当前时间之前的小时位不能选择、分钟位、秒位都可以任意选择

          return {

            disabledHours: () => range(0, 24).splice(0,Number(hour)),

          }

        }

        //否则小时、分钟、秒位都不禁用

        return {

          disabledHours: () => [],

          disabledMinutes: () => [],

          disabledSeconds: () => [],

        }

      }

      return {

        disabledHours: () => [],

        disabledMinutes: () => [],

        disabledSeconds: () => []

      }

    }

//DatePicker组件:

<DatePicker style={{ width: '100%' }} disabledDate={disabledDate}

         disabledTime={disabledDateTime}

         disabled={onlyShow} onChange={(_, dateString) => this.onChange(dateString)}  showTime/>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值