您好我正在使用 DataTables 日期范圍過濾器。這是鏈接-> 
但是當我輸入03-31-2022到04-02-2022時,它顯示了04-01-2022的記錄

uj5u.com熱心網友回復:
看起來您正在設定MinDateandMaxDate一次, on document.ready,但不是在用戶輸入日期之后。
我已將設定的代碼移至MinDate您MaxDate的搜索過濾器中。
另一個潛在問題是您正在比較 MM-DD-YYYY 格式的日期,就好像它們是字串一樣,這在比較 03-12-2022 和 05-12-2020 時不起作用。從日期的角度來看,第一個日期較晚,但從字串比較的角度來看,第一個日期較早(第一個)。因此,您可能應該將日期轉換為 YYYY-MM-DD 格式,該格式適用于字串比較。
我不確定最后一部分,因為你有new Date(...)(這是標準 JS)以及new DateTime(...)(我不認為是標準 JS)所以不清楚你是在比較字串(例如minDate.val())還是物件(例如new Date( data[9] ))。
var minDate, maxDate;
// Custom filtering function which will search data in column four between two values
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
// Create date inputs
minDate = new DateTime($('#min'), {
format: 'MM-DD-YYYY'
});
maxDate = new DateTime($('#max'), {
format: 'MM-DD-YYYY'
});
var min = minDate.val();
var max = maxDate.val();
var date = new Date( data[9] );
if (
( min === null && max === null ) ||
( min === null && date <= max ) ||
( min <= date && max === null ) ||
( min <= date && date <= max )
) {
return true;
}
return false;
}
);
$(document).ready(function() {
$('#sales').DataTable({
aLengthMenu: [
[25, 50, 100, 200, -1],
[25, 50, 100, 200, "All"]
],
iDisplayLength: -1,
scrollX: true
});
// DataTables initialisation
var table = $('#sales').DataTable();
// Refilter the table
$('#min, #max').on('change', function () {
table.draw();
});
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454832.html
標籤:javascript jQuery 数据表
上一篇:如何在Firebase中使用動態變數將元素存盤在地圖中
下一篇:將變數設定為方法
