关于服务器端'有关于SO的问题。数据表,但我没有在我的DataTables插件功能中做任何服务器端。
我使用jquery插件Datatables.js来执行$ .ajax' get'请求,将返回的响应存储在隐藏变量中(稍后在我的应用程序中使用),并在html表中显示数据。除了初始排序顺序之外,一切都运行良好,我将其设置为日期列。然后我设置了“订单”#39;数据表的选项到' desc' (显示最近的日期,因此2017年10月10日将在2017年9月26日以上显示,依此类推)。问题似乎是我的日期响应以日期时间格式返回(2017-07-15 00:00:00.000),Datatables对其进行了错误排序,例如显示2017-10-04 00:00:00.000 2017-07-之后15 00:00:00.000,而不是相反。
我不太熟悉w / datatables插件,并且想知道是否有人有解决方案来解决这个问题,并且还有跨浏览器的修复程序。如果我能以某种方式转换这个' joined_date'那将是很好的。字段作为日期而不是日期时间。以下是我的代码:
$(document).ready(function() {
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"date-uk-pre": function ( a ) {
var ukDatea = a.split('/');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
$.ajax({
type: "GET",
url: "https://sonosfarm.com/prod/authors.cfc?method=Authors",
dataType: "json",
cache: false,
success: function(response){
if(response.length != 0){
$("#authorsHiddenVar").val("");
$("#authorsHiddenVar").val(JSON.stringify(response));
$("#Authors").DataTable({
data: response,
columns:[
{
data: 'author_id',
"render": function(data, type, row, meta){
if(type== 'display'){
data = '<a href="' + "author.html" + '">' +
data + '</a>';
}
return data;
}
},
{
data: 'joined_date'
},
{data: 'country'}
],
responsive: true,
order: [1, 'desc']
});
}
else{
console.log("There was no response from server!");
}
},
error: function(XMLHttpRequest, textStatus, errorThrown){
console.log("An Ajax server error was returned");
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
});