Datatable-将字符串转换为日期类型过滤器错误

Datatable- converting string to date type filter error

我的 table 中有 5 列,第二列是用作日期类型的字符串 (12 Jan 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>

您可以检查 Sorting Plugins 看看您是否找到可以使用的。或者,您可以创建自己的排序插件,我已经做过几次并且很简单。

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));
    }
});

因此,您可以在 aoColumnscolumnDefs 配置中使用 sType 并将其设置为 my-date,一些像这样

 $('#example').dataTable( {
    columnDefs: [
        { type: 'my-date', targets: 0 }
    ]
 } );

其中目标是日期从 0 开始的列的索引。