DataTable 升序排列日期
Posted
技术标签:
【中文标题】DataTable 升序排列日期【英文标题】:DataTable sort ascending dates 【发布时间】:2020-05-07 05:46:24 【问题描述】:是否可以按日期升序对数据表进行排序?
这是我当前的表 ->
我希望它像日历一样按升序排序,如下所示:
22.01
22.01
...
23.01
...
31.01
01.02
$(document).ready(function ()
$('#example').DataTable(
searching: false,
paging: false,
bInfo: false,
order: [[3, "asc"], [2, "asc"], [1, "asc"]],
columnDefs: [
targets: 3,
type: 'date',
className: 'mdl-data-table__cell--non-numeric'
]
);
);
这是我现在使用的,我也试过type: date-eu
。
提前致谢!
更新:
我使用了类似的东西,https://datatables.net/plug-ins/sorting/datetime-moment,工作正常。
感谢帮助
【问题讨论】:
我为您创建了一个jsfiddle #Resource。希望对你有用。如果有什么问题请告诉我。 【参考方案1】:在尝试以下操作之前,您的日期应格式化为 MM DD YYYY。 试试这个:`
let dates = ["01.22.2020", "01.18.2020", "02.02.2020"];
let datesFormatted = [];
dates.forEach(i => datesFormatted.push(new Date(i)));
datesFormatted.sort(function(a, b)
if (a > b)
return 1;
else
return -1;
);
console.info(datesFormatted);
`
【讨论】:
【参考方案2】:如果您可以获取 ISO yyyy-mm-dd 格式的日期,则可以使用 html5 data-order attribute。在columnDefs
中使用createdCell 将其添加到您的单元格中。
'columnDefs': [
'targets': 3,
'createdCell': function (td, cellData, rowData, row, col)
$(td).attr('data-order', row.isodate);
]
【讨论】:
以上是关于DataTable 升序排列日期的主要内容,如果未能解决你的问题,请参考以下文章