如何对数据表中的日期进行排序,这是从DOM中的HTML数据初始化的?我的日期是纪元时间戳,我使用moment.js按需显示(例如:2017年7月17日)。
我应该注意,使用数据顺序或数据排序 attr不起作用(如下所述:https://datatables.net/examples/advanced_init/html5-data-attributes.html)
示例PHP:(这是从数据库中收集所有返回行的循环的一部分 - 然后在视图中回显整个$ member_return)
$member_return .= '<tr><td>'.$user->email.'</td><td>'.$user->first_name.'</td><td>'.$label-stat.'</td><td>'.$label-sub.'</td><td>'.(int)$user->created_on.'</td><td>--</td></tr>';
示例HTML:
<tr>
<td>fake1@email.com</td>
<td>John2</td>
<td>Active</td>
<td>Active</td>
<td>1500317481</td>
<td>--</td>
</tr>
<tr>
<td>fake2@email.com</td>
<td>John2</td>
<td>Active</td>
<td>Active</td>
<td>1500317482</td>
<td>--</td>
</tr>
<tr>
<td>fake3@email.com</td>
<td>John3</td>
<td>Active</td>
<td>Active</td>
<td>1500317483</td>
<td>--</td>
</tr>
jQuery的:
oTable = $('#view_members').DataTable({
"columns": [
{ data: "email" },
{ data: "name" },
{ data: "status" },
{ data: "subscription" },
{
data: "date",
type: "date",
render: function(data){
return moment.unix(data).format("MMMM DD, YYYY")
}
},
{ "sortable": false }
]
})
使用此方法,日期将根据日期进行排序,例如:
July 17, 2017
July 17, 2017
July 16, 2017
July 15, 2017
June 14, 2017
etc
但是,我的问题是它没有按时代排序。在上面的示例中,虽然前两个记录可能都是在2017年7月17日创建的,但该列表中的第二个记录实际上应该是第一个基于纪元时间的记录(同样,这是样本 )。
问题:
如何按照纪元时间戳排序,以我想要的格式(月日,年)显示日期?
答案 0 :(得分:1)
更改日期列定义,如下所示:
<Grid>
<CaptureElement Name="PreviewControl" Stretch="Uniform" Height="400" Width="400" >
</CaptureElement>
<Image Source="head.png" Height="400" Width="400" />
</Grid>
这告诉jQuery DataTables仅将格式化日期用于显示目的,并将Unix时间用于所有其他目的,包括排序。