Javascript 数据表使用日期选择器搜索日期

Javascript 数据表使用日期选择器搜索日期,javascript,jquery,html,datatable,datepicker,Javascript,Jquery,Html,Datatable,Datepicker,使用Datatables 1.10.19和bootstrap datepicker v1.8.0 我试图过滤我的日期栏,但它似乎不起作用,我不知道为什么。我可以使用默认的搜索栏过滤所有其他数据,但datepicker似乎什么都不做。当我搜索一个日期范围时,我没有得到任何结果 我不确定这是否是因为我使用的日期格式(dd-mm-yyyy) 我已经创建了一个,我的代码如下 注意:请忽略任何样式问题 html <div class="container"> <div class

使用Datatables 1.10.19和bootstrap datepicker v1.8.0

我试图过滤我的日期栏,但它似乎不起作用,我不知道为什么。我可以使用默认的搜索栏过滤所有其他数据,但datepicker似乎什么都不做。当我搜索一个日期范围时,我没有得到任何结果

我不确定这是否是因为我使用的日期格式(
dd-mm-yyyy

我已经创建了一个,我的代码如下

注意:请忽略任何样式问题

html

<div class="container">
    <div class="col-md-4 pull-right">
        <div class="input-group input-daterange">
            <input class="form-control date-range-filter" data-date-format="dd-mm-yyyy" id="min-date" placeholder="From:" type="text">
            <div class="input-group-addon">
                to
            </div><input class="form-control date-range-filter" data-date-format="dd-mm-yyyy" id="max-date" placeholder="To:" type="text">
        </div>
    </div>
</div>
<table class="table table-striped table-bordered" id="example" style="width:100%">
    <thead>
        <tr>
            <th>date</th>
            <th>Num</th>
            <th>Price</th>
            <th>Status</th>
            <th>Type</th>
        </tr>
    </thead>
    <tbody>
        <tr class="odd" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>521735</td>
            <td>£0.20</td>
            <td>overdue</td>
            <td>Card</td>
        </tr>
        <tr class="even" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>513938</td>
            <td>£1.20</td>
            <td>overdue</td>
            <td>Cash</td>
        </tr>
        <tr class="odd" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>523693</td>
            <td>£0.20</td>
            <td>overdue</td>
            <td>Cash</td>
        </tr>
        <tr class="even" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>493645</td>
            <td>£0.10</td>
            <td>overdue renewed</td>
            <td>Cash</td>
        </tr>
        <tr class="odd" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>521734</td>
            <td>£0.20</td>
            <td>overdue</td>
            <td>Card</td>
        </tr>
        <tr class="even" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>493646</td>
            <td>£0.10</td>
            <td>overdue renewed</td>
            <td>Cash</td>
        </tr>
        <tr class="odd" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>523691</td>
            <td>£0.10</td>
            <td>overdue renewed</td>
            <td>Card</td>
        </tr>
        <tr class="even" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>523692</td>
            <td>£0.10</td>
            <td>overdue renewed</td>
            <td>Card</td>
        </tr>
        <tr class="odd" role="row">
            <td class="sorting_1">27-03-2019</td>
            <td>523694</td>
            <td>£0.20</td>
            <td>overdue</td>
            <td>Cash</td>
        </tr>
        <tr class="even" role="row">
            <td class="sorting_1">26-03-2019</td>
            <td>506326</td>
            <td>£1.20</td>
            <td>overdue</td>
            <td>Card</td>
        </tr>
    </tbody>
</table>

非常感谢您的帮助。

要达到预期效果,请将日期更新为一种格式并检查范围

  var min = $('#min-date').val()? $('#min-date').val().split("-") : "";
  var max = $('#max-date').val()? $('#max-date').val().split("-") : "";

  var createdAt = data[0].split("-") || 0; // Our date column in the table

  createdAt = new Date(createdAt[1] + '/' + createdAt[0] + '/' + createdAt[2])
  min = min?new Date(min[1] + '/' + min[0] + '/' + min[2]): "";
  max = max?new Date(max[1] + '/' + max[0] + '/' + max[2]):"";
代码笔-


为避免出现时刻警告,请对格式为-DD/MM/YYYY的日期使用新日期('MM/DD/YYYY')。要获得预期结果,请将日期更新为一种格式并检查范围

  var min = $('#min-date').val()? $('#min-date').val().split("-") : "";
  var max = $('#max-date').val()? $('#max-date').val().split("-") : "";

  var createdAt = data[0].split("-") || 0; // Our date column in the table

  createdAt = new Date(createdAt[1] + '/' + createdAt[0] + '/' + createdAt[2])
  min = min?new Date(min[1] + '/' + min[0] + '/' + min[2]): "";
  max = max?new Date(max[1] + '/' + max[0] + '/' + max[2]):"";
代码笔-


为了避免出现时刻警告,在fiddle中使用格式为-DD/MM/yyyyy

的日期为新日期('MM/DD/YYYY'),我认为即使在键入之后,搜索仍然有效,这部分有效吗?在fiddle中,我认为即使在键入之后,搜索仍然有效,这部分有效吗?更新的代码笔和帖子,刚刚添加了另一项检查,检查最大值和最小值是否可用not@TheOrdinaryGeek,这是由于格式转换需要维护一种格式,请参考此链接以制作有效的日期格式-从当前开始的文档,DD-MM-YYYY需要格式化为已知的当前格式-如果没有找到传递到字符串构造函数的日期的已知格式,则会引发此弃用警告。若要解决此问题,请为传递给矩()的字符串指定格式。从官方矩github问题来看,这可能会有所帮助-更新了codepen和post,只是添加了另一个检查max和min值是否可用的检查not@TheOrdinaryGeek,这是由于格式转换保持了一种格式,请参阅此链接以获取有效的日期格式-从矩文档中,DD-MM-YYYY需要格式化为已知的矩格式-当未找到传递到字符串构造函数的日期的已知格式时,将引发此弃用警告。若要解决此问题,请为传递给矩()的字符串指定格式。从官方矩github问题来看,这可能会有所帮助-