我的表中有5列,第二列是作为日期类型的字符串(1月12日14日),所以当它过滤时,它只根据当天而不是年,月,然后日过滤。请记住,我无法更改类型,因为这是大型项目的一部分。
我正在使用datatables.net及其新手,所以任何帮助都会受到赞赏,所以我的问题是有人可以将字符串转换为日期类型和过滤器吗?
<script type="text/javascript" language="javascript" class="init">
var mSortingString = [];
var disableSortingColumn = 4;
mSortingString.push({ "bSortable": false, "aTargets": [disableSortingColumn] });
$(document).ready(function () {
$('#table').dataTable({
"paging": false,
"ordering": true,
"info": false,
"aaSorting": [],
"orderMulti": false,
"aoColumnDefs": mSortingString
});
});
</script>
答案 0 :(得分:1)
您可以查看Sorting Plugins以查看是否找到了可以使用的documentation。或者,您可以创建自己的排序插件,我已经完成了几次并且很容易。
var months = {Jan:1,Feb:2,Mar:3,Apr:4,May:5,Jun:6,Jul:7,Aug:8,Sep:9,Oct:10,Nov:11,Dec:12};
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"my-date-pre": function(a) {
//12 Jan 14
var myDate = a.split(' ');
return (myDate[2] + months[myDate[1]] + myDate[0]) * 1;
},
"my-date-asc": function(a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"my-date-desc": function(a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
因此,您可以在sType
或aoColumns
配置中使用columnDefs
并将其设置为 my-date
,类似这样
$('#example').dataTable( {
columnDefs: [
{ type: 'my-date', targets: 0 }
]
} );
其中targets是列的索引,日期从0开始。