angular-格式化日期时数据表不排序

angular-datatables not sorting when formatting date

当我想格式化它们时,我在使用 angular-datables 插件排序日期时遇到问题。 让我解释 : 当我使用

<td>{{date}}</td>

结果是:

当我使用时:

{{date | date}}

结果是:

但是当我使用 :

{{date | date : 'dd/MM/yyyy'}}

结果是:

即便如此我还是将其声明为日期格式:

_this.dtColumnDefs = [  
    DTColumnDefBuilder.newColumnDef(0).
    .withOption('type', 'date')
];

知道我做错了什么吗?谢谢

我们是稀有物种,我们这些使用 dd/MM/YYYY 格式的人 :) 默认的 date 类型仅适用于 "valid" 日期格式,即可以用Date.parse()。欧洲 dd/MM/YYYY 不是其中之一。在与 momentjs 混合之前,我认为您可以通过自定义排序插件轻松解决此问题:

jQuery.extend( jQuery.fn.dataTableExt.oSort, {
 "Antt-date-pre": function ( a ) {
    if (a == null || a == '') {
      return 0;
    }
    var date = a.split('/');
    return Date.parse(date[1] + '/' + date[0] + '/' + date[2])
  }
});

用法

DTColumnDefBuilder.newColumnDef(0).
  .withOption('type', 'Antt-date')

小演示 -> http://plnkr.co/edit/00vQcoeitZlrQkprN58t?p=preview

最后,我使用了与您直接从 DataTables 提供的答案类似的内容:https://datatables.net/plug-ins/sorting/date-eu

该插件已被弃用,但可以满足我的需求。