zoukankan      html  css  js  c++  java
  • Antd的DatePicker组件实现日期范围只能选择31天,超出置灰

    效果图:

    完整代码:

    import React from 'react';
    import { DatePicker,ConfigProvider } from 'antd';
    import zh_CN from 'antd/es/locale/zh_CN';
    import moment from 'moment';
    const {RangePicker} = DatePicker;
    
    class SelectTime extends React.Component{
        state={
            dates:[],//选中时间
        }
        // componentWillReceiveProps(np,ns){
        //     this.setState({dates:np.dates})
        // }
        //是否隐藏
        disabledDate=(current)=>{
            // console.log("日期列表 单个",current)
            let {dates}=this.state
            if (!dates || dates.length === 0) {
                return false;
            }
            let startTime=dates[0]
            const start=startTime && startTime.format("YYYYMMDD") > current.format("YYYYMMDD")
            const end=startTime && moment(startTime).add(30,'days').format("YYYYMMDD") < current.format("YYYYMMDD")
            return start || end;
        }
        //选中时间时
        CalendarChange=(value)=>{
            // console.log("选中日期",value)
            this.setState({dates:value})
            this.props.gxDates(value)
        }
        change=(value)=>{
            if(value.length==0){
                this.setState({dates:[]})
            }
        }
        render(){
            const {dates}=this.state
            return (
                <ConfigProvider locale={zh_CN}>
                    <RangePicker value={dates} ref="time" disabledDate={this.disabledDate} onCalendarChange={this.CalendarChange} onChange={this.change} />
                </ConfigProvider>
            )
        }
    }
    
    export default SelectTime;

    主要使用DatePicker组件的RangePicker,用于做时间范围选择。

    disabledDate记录该日期是否隐藏。

    onCalendarChange为选中时间时的事件。

    onChange为时间段被改变时的时间,可以用做更改时间段时先清空的效果。

    state中的dates为这个时间段的数组,类型为moment。

    moment这里的30表示间隔30,days为天。

    ConfigProvider用于做中文国际化。

  • 相关阅读:
    Js判断是否改动
    导入用户数据到Discuz! X3.2 并实现同步登陆
    win2003(sp2 x86)+iis6+php-5.3.5-Win32 配置
    bblittle.com
    Macbook Hbase(1.2.6) 伪分布式安装,Hadoop(2.8.2) ,使用自带zookeeper
    LeetCode 696. Count Binary Substrings
    LeetCode 637. Average of Levels in Binary Tree
    LeetCode 226. Invert Binary Tree
    LeetCode 669. Trim a Binary Search Tree
    LeetCode 575. Distribute Candies
  • 原文地址:https://www.cnblogs.com/wuhairui/p/13686220.html
Copyright © 2011-2022 走看看