【发布时间】:2019-09-12 21:44:06
【问题描述】:
我正在数据表中实现日期范围过滤器,当以 YYYY-MM-DD 格式显示列日期时,过滤器工作得很好,但我需要以 DD-MM-YYYY 格式显示列,所以我申请了时刻。
使用数据表中的时刻回调函数:
{ targets : [8],
render : function (data, type, row) {
return moment(data).format('DD/MM/YYYY')
}
},
因此,我看到列上显示了第二天。下图。 我想按日期过滤,列按以下格式排序 DD/MM/YYYY
显然我在 datepicker 过滤器中选择了第 10 天,它在表格上显示第 11 天。
$(document).ready(function(){
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var fecha_inicio = $('#fecha_inicio').datepicker("getDate");
// alert(fecha_inicio);
var fecha_fin = $('#fecha_fin').datepicker("getDate");
var arr = data[8].split('/').reverse().join('-');
// alert(arr);
// var temp = arr[0] +'-'+ arr[1] +'-'+arr[2];
var startDate = new Date(arr);
startDate.setHours(0,0,0,0);
// alert(startDate);
if (fecha_inicio == null && fecha_fin == null) { return true;}
if (fecha_inicio == null && startDate <= fecha_fin) { return true;}
if(fecha_fin == null && startDate >= fecha_inicio) { return true;}
if (startDate <= fecha_fin && startDate >= fecha_inicio) { return true;}
return false;
}
);
如果我取出回调代码,则列显示正确,日期格式除外。
提前致谢。
【问题讨论】:
标签: javascript datatables momentjs