【问题标题】:Datatables date sorting in(DD.MM.YYYY.) format数据表日期排序(DD.MM.YYYY.)格式
【发布时间】:2016-11-24 08:11:32
【问题描述】:

我已经使用 PHP 和 MySQL 和 Datatables 插件创建了表,我正在尝试使用 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.) 格式有问题吗?我应该省略最后一个点吗?

【问题讨论】:

  • 我认为您将日期时间格式作为字符串传递到数据表中

标签: javascript sorting date datatables


【解决方案1】:

试试这个日期格式代码:

$('#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;
}});

【讨论】:

    【解决方案2】:

    您是否尝试过在 MySQL 语句中使用 ORDER BY?

    我已经设法在 MySQL SELECT 语句中使用“ORDER BY date DESC”按日期对列进行排序。它将对您选择的数据进行排序,因此当您将数据传递到数据表时,它已经按日期排序。

    例子:

    SELECT column1, column2, datecolumn, column4
    FROM table
    ORDER BY datecolumn DESC 
    

    【讨论】:

    • 不,这绝对不是问题,但仍然感谢您的努力 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多