数据表日期排序为(DD.MM.YYYY。)格式

时间:2016-11-24 08:11:32

标签: javascript sorting date datatables

我使用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'
                }
            }
        });
    });
});

这是表数据的图片: enter image description here

这是订购日期时间的插件:

$.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。)格式是否有问题。我应该省略最后一个点吗?

2 个答案:

答案 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