数据表 columndef 不适用于 dd/mm/yyyy
Posted
技术标签:
【中文标题】数据表 columndef 不适用于 dd/mm/yyyy【英文标题】:Datatable columndef not working for dd/mm/yyyy 【发布时间】:2017-11-02 03:22:09 【问题描述】:我有一个格式为 dd/mm/yyyy 的日期列,用于引导数据表。我尝试对其进行排序有问题。所以我试图插入这个 columndef。结果还是一样,排序还是不正确。
var table = $('#listTable').DataTable(
responsive:true,
"columnDefs": [
type: 'date-euro', targets: 0
]
);
【问题讨论】:
请按照此链接https://datatables.net/plug-ins/sorting/date-eu
中的步骤进行操作
所以我必须包含那个额外的插件,我读过它不太清楚你能帮我描述一下吗?
如果你看到它给出的代码 columnDefs: [ type: 'date-eu', targets: 0 ] 那么这就是我所遵循的?
是的,你必须添加那个额外的插件。检查此链接https://***.com/questions/2862322/how-to-sort-by-date-with-datatables-jquery-plugin
您可以将我的答案标记为已接受。
【参考方案1】:
你必须为此添加这个插件:
参考此链接:click here
添加此代码:
jQuery.extend( jQuery.fn.dataTableExt.oSort,
"date-eu-pre": function ( date )
date = date.replace(" ", "");
if ( ! date )
return 0;
var year;
var eu_date = date.split(/[\.\-\/]/);
/*year (optional)*/
if ( eu_date[2] )
year = eu_date[2];
else
year = 0;
/*month*/
var month = eu_date[1];
if ( month.length == 1 )
month = 0+month;
/*day*/
var day = eu_date[0];
if ( day.length == 1 )
day = 0+day;
return (year + month + day) * 1;
,
"date-eu-asc": function ( a, b )
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
,
"date-eu-desc": function ( a, b )
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
);
这是用于数据表定义:
$('#example').dataTable(
columnDefs: [
type: 'date-eu', targets: 0
]
);
您也可以从此堆栈溢出链接中找到答案:click here
【讨论】:
我已经添加了这些代码并保存为 date-eu.js 与我的 jquery.dataTables.min.js 和 dataTables.bootstrap.min.js 所在的文件夹相同的文件夹。但它似乎没有正常工作。 您是否在页面中添加了 date-eu.js 文件? 你检查过***刷新链接吗? 是的,我也在我的页面中添加了 date-eu.js。我也检查并点击了链接以上是关于数据表 columndef 不适用于 dd/mm/yyyy的主要内容,如果未能解决你的问题,请参考以下文章
我正在使用 datepicker 进行日历,但它适用于 mm/dd/yyyy,但我希望它在 dd/mm/yyyy
dd/mm/yyyy 格式的日期正则表达式,用于 javascript 验证
将输入日期数据类型更改为 DD/MM/YYYY 而不是 MM/DD/YYYY 需要 [重复]