Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Jquery_Datatable - Fatal编程技术网

Javascript 如何从给定日期范围的数据表中筛选单个列的记录

Javascript 如何从给定日期范围的数据表中筛选单个列的记录,javascript,jquery,datatable,Javascript,Jquery,Datatable,我的数据表中只有一个日期字段createdDate。还有两个下拉列表,分别给出开始日期和结束日期。我想做的是在点击一个按钮后,记录应该被过滤掉 <div class="col-md-6 col-sm-6"> <input type="date" class = "createdDateFilter" id="createdDateFrom" name="createdDateFro

我的数据表中只有一个日期字段
createdDate
。还有两个下拉列表,分别给出开始日期和结束日期。我想做的是在点击一个按钮后,记录应该被过滤掉

<div class="col-md-6 col-sm-6"> 
   <input type="date" class = "createdDateFilter" id="createdDateFrom" name="createdDateFrom">
</div>
                                
                                
<label class="col-md-3 col-sm-3" for="createdDateTo">Created Date(To)</label>
 <div class="col-md-6 col-sm-6">
   <input type="date" class = "createdDateFilter" id="createdDateTo" name="createdDateTo">
 </div>

<div class="buttons">
   <input class="btn btn-primary btn-sm" id="search" type="submit" value="Search">
</div>

我对此一无所知。有可能吗?我知道每个列的搜索输入过滤器,但我想要一个单独的按钮。谢谢

我刚刚在StackOverflow上看到了这个线程,它可以帮助您

他创建了一个类,您必须在代码中复制他的一个函数,如下所示:

function inRange(d,start,end) {
   return (
        isFinite(d=this.convert(d).valueOf()) &&
        isFinite(start=this.convert(start).valueOf()) &&
        isFinite(end=this.convert(end).valueOf()) ?
        start <= d && d <= end :
        NaN
    );
}
您只需返回应用于“arr”的筛选结果

function getOnlyInRangeDateItems(arr, startDate, endDate) {
    return arr.filter(item => inRange(item.createdDate, startDate, endDate))
}
最后,就这么说吧:

let date1 = new Date($("#createdDateFrom").val())
let date2 = new Date($("#createdDateTo").val())

let datasInRange = getOnlyInRangeDateItems(arr, date1, date2)
function getOnlyInRangeDateItems(arr, startDate, endDate) {
    return arr.filter(item => inRange(item.createdDate, startDate, endDate))
}
let date1 = new Date($("#createdDateFrom").val())
let date2 = new Date($("#createdDateTo").val())

let datasInRange = getOnlyInRangeDateItems(arr, date1, date2)