Javascript 如何根据日期范围筛选值
我正在做一个项目。需要创建一个下拉列表,其中包含硬编码的值,如最近30天、最近60天、最近90天和最近120天,根据所选选项,我必须过滤json数据并显示它 到目前为止,我已经尝试了以下方法: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')
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
功能