我使用PHP& amp;创建了表格带有Datatables插件的MySQL,我尝试使用DD.MM.YYYY对列进行排序。格式,但它似乎并没有像我希望的那样工作。它仅使用第一个数字进行排序。 这是我的代码
$(document).ready(function() {
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
var datum = day + "." + month + "." + year + ".";
var doc = day + month + year;
$(document).ready(function() {
$.fn.dataTable.moment('DD.MM.YYYY.');
$('#pogled_ispu').removeAttr('width').DataTable({
dom: 'Bfrtip',
scrollY: "500px",
scrollX: true,
scrollCollapse: true,
paging: false,
select: true,
columnDefs: [{
width: 10,
targets: 8
}],
fixedColumns: {
leftColumns: 0
},
buttons: [
'colvis',
'pageLength', {
extend: 'excelHtml5',
text: '<i class="fa fa-file-excel-o"></i>',
titleAttr: 'Preuzimanje u excel formatu',
title: 'Tablični prikaz_' + datum,
exportOptions: {
columns: ':visible'
}
}, {
extend: 'pdfHtml5',
orientation: 'landscape',
text: '<i class="fa fa-file-pdf-o"></i>',
titleAttr: 'Preuzimanje u PDF formatu',
title: 'Prostorno planska dokumentacija',
message: 'Prostorno planska dokumentacija ' + datum,
pageSize: 'A3'
}
],
language: {
"url": "js/Croatian.json",
buttons: {
colvis: '<i class="fa fa-eye"></i>',
pageLength: 'Broj redova'
}
}
});
});
});
这是订购日期时间的插件:
$.fn.dataTable.moment = function ( format, locale ) {
var types = $.fn.dataTable.ext.type;
// Add type detection
types.detect.unshift( function ( d ) {
return moment( d, format, locale, true ).isValid() ?
'moment-'+format :
null;
} );
// Add sorting method - use an integer for the sorting
types.order[ 'moment-'+format+'-pre' ] = function ( d ) {
return moment( d, format, locale, true ).unix();
};
};
(DD.MM.YYYY。)格式是否有问题。我应该省略最后一个点吗?
答案 0 :(得分:0)
试试这个日期格式代码:
$('#table').DataTable({
"order": [[0, "desc"]], //order by date when 1st time table are loaded, based on your date column
"aoColumnDefs": [
{ sType: "date-custom", aTargets: [0] } //targets are based on your date column
],
"aoColumns": [
{"mDataProp": "date" //your date column name in array
,"mRender": function(data, type, full)
{
var getData = new Date(data);
var month = getData.getMonth() + 1;
var date = getData.getDate();
var year = getData.getFullYear();
return (date > 9 ? date : "0" + date) + "." +
(month > 9 ? month : "0" + month) + "." +
year;
}
}
]
});
$.extend(jQuery.fn.dataTableExt.oSort, {
"date-custom-pre": function(a) {
var x;
try {
var dateA = a.replace(/ /g, '').split(".");
var day = parseInt(dateA[0], 10);
var month = parseInt(dateA[1], 10);
var year = parseInt(dateA[2], 10);
var date = new Date(year, month - 1, day);
x = date;
}
catch (err) {
x = new Date();
}
return x;
},
"date-custom-asc": function(a, b) {
return a - b;
},
"date-custom-desc": function(a, b) {
return b - a;
}});
答案 1 :(得分:-1)
您是否尝试在MySQL语句中使用ORDER BY?
我已设法使用&#39; ORDER BY date DESC&#39;按日期对我的列进行排序。在MySQL SELECT语句中。它会对您选择的数据进行排序,因此当您将数据传递给数据表时,它将按日期排序。
示例:
SELECT column1, column2, datecolumn, column4
FROM table
ORDER BY datecolumn DESC