关于Ant.design的RangePicker日期范围限制的实践(限制当前日期之前日期可选)

博主接到一个需求,要求限制日期范围,其要求如下:

限制起始时间结束时间的范围不超过1个月,且限制起始时间结束时间不能大于当前日期减去2天(即T-2
查阅了官方文档和一些博主的文档,最后经过自己的微调整,解决了该问题。

PS:注意,限制用户刚点击打开RangePicker弹窗的可选日期时,需要在最上方进行判断返回。否则无法生效!!!

<Col span={8}>
              <Form.Item {...itemLayout} name="dotime" label={
                <div style={{ textAlign: 'right' }}>
                  <span>&nbsp;执行日期</span>
                  <span className={styles.a_symbol}>
                    <Tooltip placement="top" title={<div>1、执行日期起止时间范围不能超过1个月<br />2、数据更新日期为T-2日,之后日期无数据</div>}>
                      <QuestionCircleOutlined style={{ margin: '0 -8px 0 2px' }} />
                    </Tooltip>
                  </span>
                </div>
              } rules={[{ required: true, message: '执行日期不能为空!' },]} >
                <RangePicker value={hackValue || value} disabledDate={disabledDate} onCalendarChange={onCalendarChange} onOpenChange={onOpenChange} onChange={onDateChange} />
              </Form.Item>
</Col>
// 日期禁选区域设置
  const disabledDate = (current) => {
    const limitDate = moment().endOf().subtract(2, 'days');
    const T2 = current && current > limitDate;
    if (!rangeDate || rangeDate.length === 0) {
      return T2;
    }
    const tooLate = rangeDate[0] && current.diff(rangeDate[0], 'months') >= 1;
    const tooEarly = rangeDate[1] && rangeDate[1].diff(current, 'months') >= 1;
    return tooEarly || tooLate || T2;
  }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用Ant Design Vue的DatePicker组件来实现开始和结束时间的日期限制。下面是一种常见的方法: 首先,你需要在Vue组件中导入DatePicker组件: ```javascript import { DatePicker } from 'ant-design-vue'; ``` 然后,你可以在模板中使用DatePicker组件,并为其添加`range`属性来启用日期范围择: ```html <template> <div> <a-date-picker v-model="dateRange" range></a-date-picker> </div> </template> ``` 接下来,在Vue组件的`data`项中定义一个`dateRange`变量来存储定的日期范围: ```javascript data() { return { dateRange: null, }; }, ``` 现在,你可以使用`disabledDate`属性来设置开始和结束时间的日期限制。在这个属性中,你可以定义一个函数来检查每个日期是否可选。例如,你可以禁用今天之前日期: ```html <template> <div> <a-date-picker v-model="dateRange" range :disabledDate="disabledDate"></a-date-picker> </div> </template> ``` ```javascript methods: { disabledDate(current) { return current && current.valueOf() < Date.now() - 24 * 60 * 60 * 1000; }, }, ``` 在上述示例中,我们使用了`valueOf()`方法来将日期对象转换为毫秒数,然后进行比较。通过返回`true`或`false`来禁用或启用相应的日期。 你还可以根据需要在`disabledDate`函数中添加其他逻辑,例如限制最大日期或最小日期。 希望这个例子能够帮助你实现Ant Design Vue的DatePicker组件的开始和结束时间日期限制!如果有任何疑问,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzxOnlineOk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值