Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据日期范围筛选值_Javascript_Reactjs - Fatal编程技术网

Javascript 如何根据日期范围筛选值

Javascript 如何根据日期范围筛选值,javascript,reactjs,Javascript,Reactjs,我正在做一个项目。需要创建一个下拉列表,其中包含硬编码的值,如最近30天、最近60天、最近90天和最近120天,根据所选选项,我必须过滤json数据并显示它 到目前为止,我已经尝试了以下方法: let onAddDates = (e) => { if (e !== null) { setAddDates(e.value); } } function createDateFormula (addDates) { if(addDates == 'Last 30 days')

我正在做一个项目。需要创建一个下拉列表,其中包含硬编码的值,如最近30天、最近60天、最近90天和最近120天,根据所选选项,我必须过滤json数据并显示它

到目前为止,我已经尝试了以下方法:

let onAddDates = (e) => {
if (e !== null) {
  setAddDates(e.value);
}

}

function createDateFormula  (addDates) {
  
  if(addDates == 'Last 30 days'){
    FilterDate =  new Date(new Date().setDate(CurrentDate.getDate() - 30));
  }
  if(addDates == 'Last 60 days'){
    FilterDate =  new Date(new Date().setDate(CurrentDate.getDate() - 60));
  }
  if(addDates == 'Last 90 days'){
    FilterDate =  new Date(new Date().setDate(CurrentDate.getDate() - 90));
  }
  if(addDates == 'Last 120 days'){
    FilterDate =  new Date(new Date().setDate(CurrentDate.getDate() - 120));
  }
}
function handleAllDatesFilter(dataToFilter) {
  createDateFormula();
  if(dataToFilter && dataToFilter!=claimHistoryConstants.emptyString) {
    
    
    if(FilterDate && CurrentDate) {
      return dataToFilter.filter((localData) => {
        console.log("From Date: "+(FilterDate)+" To Date: "+JSON.stringify(CurrentDate));
        const date=new Date(localData.fnCreationDate).getDate();
        const year=new Date(localData.fnCreationDate).getFullYear();
        const month=new Date(localData.fnCreationDate).getMonth()+1;
        const localDate=`${month}/${date}/${year}`;
        return (new Date(localDate) >= FilterDate) && 
        (new Date(localDate) <= CurrentDate);              
      });
    } else {
      console.log("Null");
      return dataToFilter;            
    }
  }
}
const AllDatesOptions = [
{ value: 'Last 30 days', label: 'Last 30 days' },
{ value: 'Last 60 days', label: 'Last 60 days' },
{ value: 'Last 90 days', label: 'Last 90 days' },
{ value: 'Last 120 days', label: 'Last 120 days' }
 ]

  <Select className="AdvancedFilterText"
          ref={allDatesRef}
          options={AllDatesOptions}
          isSearchable
          placeholder={"ALL DATES"}
          onChange={event => onAddDates(event)}>
          
        </Select>
让onaddates=(e)=>{
如果(e!==null){
setAddDates(即值);
}
}
函数createDateFormula(addDates){
如果(addDates==“最近30天”){
FilterDate=新日期(new Date().setDate(CurrentDate.getDate()-30));
}
如果(addDates==“最近60天”){
FilterDate=新日期(new Date().setDate(CurrentDate.getDate()-60));
}
如果(addDates==“最近90天”){
FilterDate=新日期(new Date().setDate(CurrentDate.getDate()-90));
}
如果(addDates==‘最后120天’){
FilterDate=新日期(new Date().setDate(CurrentDate.getDate()-120));
}
}
函数handleAllDatesFilter(dataToFilter){
createDateFormula();
if(dataToFilter&&dataToFilter!=claimHistoryConstants.emptyString){
如果(筛选日期和当前日期){
返回dataToFilter.filter((localData)=>{
log(“从日期:”+(FilterDate)+“到日期:”+JSON.stringify(CurrentDate));
const date=新日期(localData.fnCreationDate.getDate();
const year=新日期(localData.fnCreationDate.getFullYear();
const month=新日期(localData.fnCreationDate).getMonth()+1;
const localDate=`${month}/${date}/${year}`;
返回(新日期(localDate)>=FilterDate)和
(新日期(本地日期)

您已经声明了您的
createDateFormula(addDates)
但是当您使用该函数时,您不会向其传递任何信息,
HandleAllDates过滤函数
在哪里被触发?您应该触发过滤函数,例如在
onAddDates函数
@处,Rinic我现在传递了值,但数据仍然没有得到filtered@MehrnooshonAddDates方法正在存储我们不是从中选出来的吗dropdown@HarshitaArya如果
onAddDates
仅执行此操作,则不会在代码中的任何位置触发
handleAllDatesFilter
功能