如何设置开始日期和结束日期之间的验证应在 3 年内选择

Posted

技术标签:

【中文标题】如何设置开始日期和结束日期之间的验证应在 3 年内选择【英文标题】:How set the validation between start date and end date should select with in the 3 years 【发布时间】:2021-08-21 12:26:55 【问题描述】:

我是React JS的新手,如何在React JS中实现两个日期字段之间的验证。

例如:结束日期应该只允许选择基于开始日期的 3 年内。

class MyForm extends React.Component 
    constructor(props) 
      super(props);
      this.state =  startdate: '', enddate: '' ;
    
    mySubmitHandler = (event) => 
      event.preventDefault();
      alert("You are submitting " + this.state.startdate +"and"+ this.state.enddate);
    
    myChangeHandler = (event) => 
      this.setState(startdate: event.target.value);
    
    myEndDate = (event) => 
        this.setState(enddate: event.target.value);
      
    render() 
      return (
        <form onSubmit=this.mySubmitHandler>
        <img src="is.jpg"></img>
        <h2>Please select the Date range of .CSV </h2>
        <input
          type='date'
          onChange=this.myChangeHandler
        />
        <span>   </span>
       <input
          type="date"
          onChange=this.myEndDate
        />
        <h6 id="light">Note: Only up to 3 years worth of Data can be downloaded</h6>
        <div>
        this.state.startdate && this.state.enddate && <input
      type='submit' value="Download" class="bi bi-cloud-arrow-down"  style= width: '10%', height: 30
    />
        </div>
        </form>
      );
    
  
 
  ReactDOM.render(<MyForm />, document.getElementById('root'));

  export default MyForm;

【问题讨论】:

您可以在日期输入字段上设置min/max-属性。只需设置结束日期字段的开始日期更改值即可。 【参考方案1】:
if (startDate) 
    var maxDate = startDate;
    maxDate = format(addMonths(startDate, 36), " E MMM dd yyyy HH:mm:ss ");
    var strToDate = new Date(maxDate);
    console.log("maxDate value ==" + maxDate);
  

结束日期将从开始日期增加36个月,然后用户可以在该期间内选择。

然后将字符串转换为日期格式,然后strToDate在datepicker标签中使用。

<DatePicker id="endDate-css" placeholderText=END_DATE dateFormat='dd-MM-yyyy' selected=endDate minDate=startDate maxDate=strToDate onChange=handleEndDate/>

【讨论】:

以上是关于如何设置开始日期和结束日期之间的验证应在 3 年内选择的主要内容,如果未能解决你的问题,请参考以下文章

My97DatePicker时间日期控件设置,开始时间--结束时间

My97DatePicker时间日期控件设置,开始时间--结束时间

如何在 BigQuery 的开始日期和结束日期之间复制生成日期的行?

如何验证结束日期大于开始日期?

从给定的开始日期获取结束日期基数

python中日期范围之间的月份开始日期和结束日期