I've got a jQuery DataTable and I've got my dates in the second column in MM-DD-YYYY format. I'm trying to get my date range picker to work with it, so my datatable only shows rows with dates within the range in the picker.
Table and date range picker:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.11/jquery.mask.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<div class="col-md-8">
<div class="input-group input-daterange">
<input type="text" class="form-control date-range-filter" placeholder="Date Start" data-date-format="mm-dd-yyyy" id="min" />
<span class="input-group-addon">to</span>
<input type="text" class="form-control date-range-filter" placeholder="Date End" data-date-format="mm-dd-yyyy" id="max"/>
</div>
</div>
<div class="panel-body">
<table id="data-table" class="table table-striped table-bordered nowrap" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Date</th>
<th>Time</th>
<th></th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr class="odd gradeX">
<td>Name</td>
<td>06/06/2017</td>
<td>6:31:43 PM</td>
<td>CDT</td>
<td>All Systems Normal</td>
</tr>
<tr class="odd gradeX">
<td>Name</td>
<td>06/05/2017</td>
<td>1:22:33 PM</td>
<td>CDT</td>
<td><font color="red"> LOW Voltage</font></td>
</tr>
<tr class="odd gradeX">
<td>Name</td>
<td>06/04/2017</td>
<td>6:11:25 AM</td>
<td>CDT</td>
<td><font color="red">Main Power Failure</font></td>
</tr>
<tr class="odd gradeX">
<td>Name</td>
<td>06/03/2017</td>
<td>5:31:43 PM</td>
<td>CDT</td>
<td><font color="red">Main Power Failure <br> LOW DC Voltage</font></td>
</tr>
<tr class="odd gradeX">
<td>Name</td>
<td>06/02/2017</td>
<td>2:20:43 PM</td>
<td>CDT</td>
<td>All Systems Normal</td>
</tr>
<tr class="odd gradeX">
<td>Name</td>
<td>06/01/2017</td>
<td>3:50:21 AM</td>
<td>CDT</td>
<td><font color="red">Digital Input 1</font></td>
</tr>
</tbody>
</table>
</div>
I've tried this code, and I can't seem to get it to work. What am I missing?
// Bootstrap datepicker
$('.input-daterange input').each(function() {
$(this).datepicker('clearDates');
});
// Extend dataTables search
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var min = $('#min').val();
var max = $('#max').val();
var createdAt = data[1] || 1; // Our date column in the table
if (
(min == "" || max == "") ||
(moment(createdAt).isSameOrAfter(min) && moment(createdAt).isSameOrBefore(max))
) {
return true;
}
return false;
}
);
// Re-draw the table when the a date range filter changes
$('.date-range-filter').change(function() {
var table = $('#data-table').DataTable();
table.draw();
});
$('#data-table_filter').hide();