【问题标题】:DataTable sort ascending datesDataTable 升序排列日期
【发布时间】:2020-05-07 05:46:24
【问题描述】:

是否可以按日期升序对数据表进行排序?

这是我当前的表 ->

我希望它像日历一样按升序排序,如下所示:

22.01
22.01
...
23.01
...
31.01
01.02

 $(document).ready(function () {
        $('#example').DataTable({
            searching: false,
            paging: false,
            bInfo: false,
            order: [[3, "asc"], [2, "asc"], [1, "asc"]],
            columnDefs: [
                {
                    targets: 3,
                    type: 'date',
                    className: 'mdl-data-table__cell--non-numeric'
                }
            ]
        });
    });

这是我现在使用的,我也试过type: date-eu

提前致谢!

更新:

我使用了类似的东西,https://datatables.net/plug-ins/sorting/datetime-moment,工作正常。

感谢帮助

【问题讨论】:

  • 我为您创建了一个jsfiddle #Resource。希望对你有用。如果有什么问题请告诉我。

标签: javascript datatables


【解决方案1】:

在尝试以下操作之前,您的日期应格式化为 MM DD YYYY。 试试这个:`

let dates = ["01.22.2020", "01.18.2020", "02.02.2020"];
let datesFormatted = [];

dates.forEach(i => {datesFormatted.push(new Date(i))});

datesFormatted.sort(function(a, b) {
  if (a > b) {
    return 1;
  } else {
    return -1;
  }
});

console.info(datesFormatted);

`

【讨论】:

    【解决方案2】:

    如果您可以获取 ISO yyyy-mm-dd 格式的日期,则可以使用 HTML5 data-order attribute。在columnDefs 中使用createdCell 将其添加到您的单元格中。

      'columnDefs': [
         {
            'targets': 3,
            'createdCell':  function (td, cellData, rowData, row, col) {
               $(td).attr('data-order', row.isodate);
            }
         }
      ]
    

    【讨论】:

      猜你喜欢
      • 2014-08-30
      • 2013-02-17
      • 2019-06-30
      • 2020-02-08
      • 2020-12-22
      • 2015-04-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      相关资源
      最近更新 更多