我想按创建日期对数据表进行排序,同时以特殊格式显示日期 我尝试了下面的代码,但是没有用,问题是我可以显示日期,但是像D d M-Y格式的文本一样,我需要将日期排序为日期而不是文本
控制器
->addColumn('created_at', function ($data) {
return [
'display' => date('D d M-Y', strtotime($data->created_at)),
'timestamp' => ($data->created_at)
];
})
jquery:
{ name: ' order_date', data: { '_': ' order_date.display', 'sort': ' order_date.timestamp'
} }
答案 0 :(得分:0)
使用js中的顺序。
order: [[ 1, 'desc' ]],
其中1是列位置。
答案 1 :(得分:0)
请按照以下步骤解决问题
控制器
return Datatables::of($data)
->addIndexColumn()
->editColumn('created_at', function ($user) {
return [
'display' => e($user->created_at->format('m/d/Y')),
'timestamp' => $user->created_at->timestamp
];
})
->filterColumn('created_at', function ($query, $keyword) {
$query->whereRaw("DATE_FORMAT(created_at,'%m/%d/%Y') LIKE ?", ["%$keyword%"]);
})
->make(true);
Js
columns: [
{
data: 'index',
defaultContent: '',
orderable: false,
searchable: false,
render: function (data, type, row, meta) {
return meta.row + meta.settings._iDisplayStart + 1; //auto increment
}
},
{data: 'site_name', name: 'site_name'},
{data: 'site_url', name: 'site_url'},
{data: 'key', name: 'key', defaultContent: "-"},
{
data: 'created_at',
type: 'num',
render: {
_: 'display',
sort: 'timestamp'
}
},
{data: 'status', name: 'status'},
{data: 'action', name: 'action', orderable: false, searchable: false},
],
order: [[4, "DESC"]] //column indexes is zero based