在 yadcf 插件中排序自定义日期格式

sort custom date format in yadcf plugin

我正在使用 jquery Datatables 与 moment.js 和 yadcf-plugin。

在我的 table 中,我有一个 dd.mm.yyyy 格式的日期字段 - 为了正确排序,我使用了 moment-plugin,效果很好。

但是在yadcf-filter中,排序为"alpha",像

但我需要

如何使用 moment.js 对值进行排序?

谢谢。

更新:请参阅下面的 编辑 2,它回答了实际问题。

似乎将 sort_as: 'alphaNum' 添加到日期列的 yadcf 参数即可:

$(document).ready(function(){
  $.fn.dataTable.moment( 'DD.MM.YYYY' );
  $('#test').dataTable().yadcf([
    {column_number : 0, select_type: 'select'},
    {column_number : 1, select_type: 'select', sort_as: 'alphaNum'}
  ]);
});

编辑:如果您还想将默认排序更改为日期列,则需要将 orderparam 添加到 dataTables 对象本身:

$(document).ready(function(){
  $.fn.dataTable.moment( 'DD.MM.YYYY' );
  $('#test').dataTable({
    "order": [[ 1, 'asc' ]]
  }).yadcf([
    {column_number : 0, select_type: 'select'},
    {column_number : 1, select_type: 'select', sort_as: 'alphaNum'}
  ]);
});

编辑 2:如果您想对 yadcf select/dropdown 进行排序,我看到的唯一选择是拥有自己的排序功能:

$(document).ready(function(){
  $.fn.dataTable.moment( 'DD.MM.YYYY' );
  $('#test').dataTable({
    "order": [[ 1, 'asc' ]]
  }).yadcf([
    {column_number : 0, select_type: 'select'},
    {column_number : 1, select_type: 'select', sort_as: 'custom', sort_as_custom_func: function(one, two) {
        if (moment(one, "DD.MM.YYYY").isAfter( moment(two, "DD.MM.YYYY") )) {return true}
        else {return false}
      }
    }
  ]);
});