Antd DatePicker 只允许选择当前时间之后的时间 包括时分秒

 需求:选择当前时间之后的时间

1.隐藏“此刻”按钮

2.只允许选择当前时间5分钟之后的时间 

import moment from 'moment';

let disabledDate = (current:any) => {
    return current && current < moment().subtract(1, 'days').endOf('day');
};
let range = (start:any, end:any) => {
    const result = [];
    for (let i = start; i < end; i++) {
        result.push(i);
      }
      return result;
}, 
let disabledDateTime = (current:any)=>{
      if(current){
        let today = moment().date();
        if(today == current.date()){
          let minute = Number(moment().minutes())
          let hour = Number(moment().hour());
          let finalHour:number,finalMinute:number;
          if(current.hour() > hour ){
            finalMinute = 0
          }else{
            if(current.minute() >= 58){
              finalHour = hour + 1;
              finalMinute = 0; 
            }else{
              finalHour = hour;
              finalMinute = minute + 5;
            }
          }
          return {
            disabledHours: () => range(0, finalHour),
            disabledMinutes: () => range(0, finalMinute)
          }
        }else if(moment()>current){
        return {
          disabledHours: () => range(0, 24),
          disabledMinutes: () => range(0, 60),
          disabledSeconds: () => range(0, 60)
        }
      }
      }else{
        return {
          disabledHours: () => range(0, 24),
          disabledMinutes: () => range(0, 60),
          disabledSeconds: () => range(0, 60),
        }
      }
};

let taskPlanDate = {
    label:"扫描时间",
    name:"taskPlanDate",
    rules:[{ required: true, message: '扫描目标不能为空!' }]
};
<FormItem {...taskPlanDate}>
    <DatePicker
        disabledDate={disabledDate}
        disabledTime={disabledDateTime}
        showTime={{ defaultValue: moment('YYYY/MM/DD HH:mm:ss') }}
        showNow={false} 
        onOk={(e: any) => {
            console.log(e)
        }}
     />
</FormItem>

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值