antd RangePicker限制选择时间跨度是30天

const { RangePicker } = DatePicker;
 const [selectDate, setSelectDate] = useState(null);
 /* 控制下单时间选择范围30天 */
   const disabledTaskDate = (current) => {
    if (!current || !selectDate) return false;
    const offsetV = 2592000000;                 //30天转换成ms
    const selectV = selectDate.valueOf();
    const currenV = current.valueOf();
    return (calcMinus(currenV, offsetV) > selectV || calcAdd(currenV, offsetV) < selectV) ? true : false;
  }

  /* 选择任务时间变化 */
  const onDateChange = (dates) => {
    if (!dates || !dates.length) return;
    setSelectDate(dates[0]);
  }

  const onDateOpenChange = () => {
    setSelectDate(null);
  }
<RangePicker
    showTime={{ format: 'HH:mm:ss' }}
    disabledDate={disabledTaskDate}
    onCalendarChange={onDateChange}
    onOpenChange={onDateOpenChange}
    />

下面是以上涉及到的浮点数相加减的定义

/* 两个浮点数相减 */
export const calcMinus = (num1, num2) => {
  num1 = Number(num1);
  num2 = Number(num2);
  if (isNaN(num1) || isNaN(num2)) return 0;

  const num1Digits = (num1.toString().split(".")[1] || "").length;
  const num2Digits = (num2.toString().split(".")[1] || "").length;
  const baseNum = Math.pow(10, Math.max(num1Digits, num2Digits));
  return (calcMulti(num1, baseNum) - calcMulti(num2, baseNum)) / baseNum;
};```

export const calcAdd = (num1, num2) => {
  num1 = Number(num1);
  num2 = Number(num2);
  if (isNaN(num1) || isNaN(num2)) return 0;

  const num1Digits = (num1.toString().split(".")[1] || "").length;
  const num2Digits = (num2.toString().split(".")[1] || "").length;
  const baseNum = Math.pow(10, Math.max(num1Digits, num2Digits));
  return (calcMulti(num1, baseNum) + calcMulti(num2, baseNum)) / baseNum;
}

```go
/* 两个浮点数相乘 */
export const calcMulti = (num1, num2) => {
  num1 = Number(num1);
  num2 = Number(num2);
  if (isNaN(num1) || isNaN(num2)) return 0;

  const num1String = num1.toString();
  const num2String = num2.toString();
  const num1Digits = (num1String.split(".")[1] || "").length;
  const num2Digits = (num2String.split(".")[1] || "").length;
  const baseNum = Math.pow(10, num1Digits + num2Digits);
  return (
    (Number(num1String.replace(".", "")) *
      Number(num2String.replace(".", ""))) /
    baseNum
  );
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值