我正在使用此Bootstrap table plugin。但是按日期排序不能正常工作。
代码如下:
<table class=" table-striped" id="table" data-toggle="table"
data-search="true"
data-filter-control="true"
data-click-to-select="true"
data-escape="false">
<thead>
<tr>
<th data-field="expiry_date" data-sortable="true" scope="col"><?= 'expiry date' ?></th>
</tr>
</thead>
日期的格式为:d/m/y
(17/7/14)
如何解决该问题以便对日期进行正确排序?
答案 0 :(得分:1)
您必须使用具有“数据分类器”属性的自定义分类器,例如data-sorter="datesSorter"
然后满足您的需求:
function datesSorter(a, b) {
if (new Date(a) < new Date(b)) return 1;
if (new Date(a) > new Date(b)) return -1;
return 0;
}
答案 1 :(得分:1)
在 <iframe src="myfile_bar.html"></iframe>
内容的开头把日期转换成这样的数字
<td>
答案 2 :(得分:0)
我让它像这样工作。 我添加了一个新列(数字)并将其设置为隐藏。您可以通过将该日期转换为数字来轻松实现。
$('#mainTable').bootstrapTable({
sortStable: true,
pagination: true,
pageSize: 100,
toolbar:"#toolbar",
search: true,
searchOnEnterKey: false,
sortOrder: "desc",sortOrder: "desc",
//在这里,我们确定将对表格进行排序的列
sortName: "rel0",
columns: [
{
//这是用作排序器的隐藏数字列
field: 'rel0',
title: 'rel0',
visible:false,
},
{
//这是可见的列
field: 'rel',
title: 'Date / hour',
},],
data: objetoData
});
答案 3 :(得分:0)
您必须使用具有“数据分类器”属性的自定义分类器,例如data-sorter =“ datesSorter”。
然后满足您的需求:
function datesSorter(a, b) {
return Date.parse(a) - Date.parse(b);
}