当前位置: 首页 > Web前端 > HTML

AntDesignRangePicker日期选择器不能选择今天和未来的日期,最多可以选择31天

时间:2023-03-28 02:01:52 HTML

先来看一下效果:效果图:默认不选择今天和未来日期。选择日期时,其可选择范围限制为31天,下次选择时将解除限制。下面是代码示例,里面的props,state,this.setState可以根据情况修改props.rangeOnChange(dates)}onCalendarChange={dates=>props.CalendarChange(dates)}defaultValue={[props.begin,props.end]}/>disabledDate=(current)=>{//当前&&(moment(current).format('YYYY-MM-DD')===moment().format('YYYY-MM-DD')//||当前>moment().endOf('day'))//此部分仅限于今天和未来日期不可用,按要求修改//this.state.TimeInterval中的30).subtract(30,'d')取决于要求限制多少天自己修改//moment(this.state.TimeInterval).add(30,'d')同样返回this.state.TimeInterval?parseInt(moment(moment(current).format('YYYY-MM-DD')).format('x'))parseInt(moment(moment(this.state.TimeInterval).add(30,'d').format('YYYY-MM-DD')).format('x'))||当前&&(moment(current).format('YYYY-MM-DD')===moment().format('YYYY-MM-DD')||current>moment().endOf('day')):当前&&(moment(current).format('YYYY-MM-DD')===moment().format('YYYY-MM-DD')||current>moment().endOf('day'))//下面是解除区间限制后的规则,设置为flase表示允许}asyncrangeOnChange(value){//this.begin=value.length!==0?值[0].unix():'';//this.end=value.length!==0?值[1].unix():'';//这里是给开始日的零点时间戳和结束日的23.59.59时间戳赋值,单位秒。根据后端要求传值即可。this.begin=value.length!==0?parseInt(moment(value[0].format("YYYY-MM-DD")).startOf('day').format('x')/1000):'';this.end=value.length!==0?parseInt(moment(value[1].format("YYYY-MM-DD")).endOf('day').format('x')/1000):'';await//日期查询相关的业务代码,此处省略}CalendarChange=(value)=>{//此处判断,当日期区间选择完成后,解除区间限制。this.setState({TimeInterval:value.length>1?null:value[0]})}