antd DatePicker 日期今天往前,不限制但是开始和结束的范围只能选择30天,往后只能选择今天以后的30天

import moment from 'moment'; 

const [selectPriceDate, setSelectPriceDate] = useState('');

<DatePicker.RangePicker
 style={{ width: '100%' }}
 allowClear
 placeholder={['开始时间', '结束时间']}
 disabledDate={disabledPriceRangeDate} // 不可选择的日期
 onCalendarChange={calendarPriceRangeChange} // 待选日期发生变化的回调	
 onChange={changePriceRangeDate} // 日期范围发生变化的回调	
 onOpenChange={handleStartOpenChange} // 日期弹框 打开、关闭的回调
/>
// 根据选择的开始时间/结束时间,动态渲染要禁用的日期
  function disabledPriceRangeDate(current) {
    const time = selectPriceDate || moment();

    const result = moment().add(29, 'days').diff(moment(time), 'days'); // 计算选中日期和今天之后29天的日期差

    const days = moment(time) > moment() ? result : 29; // 判断选中日期是今天之前还是今天之后

    const startTime = time;

    const start = startTime && startTime.format('YYYYMMDD') > current.format('YYYYMMDD');
    const end =
      startTime &&
      moment(startTime).add(days, 'days').format('YYYYMMDD') < current.format('YYYYMMDD');
    return selectPriceDate ? start || end : end;
  }

// 待选日期发生变化的回调
  function calendarPriceRangeChange(date) {
    setSelectPriceDate(date[0]);
  }

// 选择完时间
  function changePriceRangeDate(value) {
    setSelectPriceDate('');
  }

function handleStartOpenChange(open) {
    if (!open) {
      setSelectPriceDate('');
    }
  }

赋值即可用..

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值