Я хочу отфильтровать мои данные одним средством выбора диапазона дат, но не работает.Как ее решить?
Это скриншот моей страницы Я адаптировал код из этого источника, но в этом коде используется два тега ввода
В моем коде я хочу отфильтровать данные, используя одно средство выбора даты, я могу отфильтровать данные, используя два тега ввода, но я не знаю, как фильтровать, используя одно средство выбора даты, которые имеют два значения: дату от (мин) и дату до (макс)... Это мой код:
<div class="input-group input-daterange ">
<button type="button" class="btn btn-default pull-right date-range-filter" id="daterange-btn">
<span>
<i class="fa fa-calendar"></i>
</span>
<i class="fa fa-caret-down"></i>
</button>
</div>
<table id="tableku" class=" table table-bordered table-striped"> <!-- my table tag. -->
<script type="text/javascript">
$(document).ready(function() {
table= $('#tableku').DataTable( {
dom: 'Bfrtip',
buttons: ['copy', 'csv', 'excel', 'pdf', 'print']
} );
var start = moment();
var end = moment();
function cb(start, end) {
$('#daterange-btn span').html(start.format('DD MMMM YYYY') + ' - ' + end.format('DD MMMM YYYY'));
alert(start.format('DD MMMM YYYY')+ ' - ' + end.format('DD MMMM YYYY')); /*Get The Value from my datepicker*/
}
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var min = start.format('YYYY-MM-DD');
var max = end.format('YYYY-MM-DD');
var createdAt = data[1] || 0; // my 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() {
table.draw();
});
$('#my-table_filter').hide();
$('#daterange-btn').daterangepicker({
startDate: start,
endDate: end,
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
}
}, cb);
cb(start, end);
} );
</script>