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')
最后,我使用了与您直接从 DataTables 提供的答案类似的内容:https://datatables.net/plug-ins/sorting/date-eu
该插件已被弃用,但可以满足我的需求。
当我想格式化它们时,我在使用 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')
最后,我使用了与您直接从 DataTables 提供的答案类似的内容:https://datatables.net/plug-ins/sorting/date-eu
该插件已被弃用,但可以满足我的需求。