【问题标题】:How can I sort my jquery datatable by date?如何按日期对我的 jquery 数据表进行排序?
【发布时间】:2021-01-14 04:43:59
【问题描述】:

这是我的数据表的内容:

05.06.2020 10:46
14.08.2020 11:18
17.09.2020 01:24
17.09.2020 04:42
20.08.2020 01:47
20.08.2020 04:37
22.09.2020 02:05
23.09.2020 13:52
28.04.2020 02:46
28.04.2020 12:00

排序工作不正常,因为我希望列从最新日期开始。 这是我的方法:

var table = $('.table').DataTable({
    "data":{{ data|raw }},
    "order": [[ 0, "asc" ]],
  ....

   'createdCell':  function init(cell, cellData, rowData, rowIndex, colIndex) {
       var unixTimestamp = moment(cellData, 'DD.MM.YYYY HH:MM').unix();
        $(cell).html(cellData);
        $(cell).attr('data-order', unixTimestamp);
   }

但排序仍然是错误的。 我尝试了这个解决方案How can I sort my DataTables row by date?,但它对我不起作用。

【问题讨论】:

  • @billynoah 它是一个 json 对象
  • 除了billynoah 提到的出色的“正交数据”方法外,另一种灵活的方法是使用moment.js - 如this walkthrough 所示。关于 SO 有一些与该方法相关的问题和答案。
  • 对于正交数据,听起来您可能需要将输入日期重新格式化为可排序的格式。如果是这样,请参阅this example 中的渲染函数。因此,可排序格式将是这样的字符串:2020.09.22 02:05,例如。这样可以很好地排序,作为常规字符串。
  • 为什么数据顺序不起作用datatables.net/examples/advanced_init/…
  • 数据顺序对我来说工作正常。如果有帮助,我可以举个例子。

标签: jquery date sorting datatables


【解决方案1】:

您可以将时间戳添加到您的对象中并使用Orthogonal data。如果您提供对象的 sn-p 和更多 Datatables 初始化参数,我可以给您一个更具体的示例,但它是这样的:

var table_data = [
    {
        "date": {
            "display": "05.06.2020 10:46",
            "timestamp": "1303681234"
        }
    }
]

var table = $('.table').DataTable({
    "data": table_data,
    "order": [[ 0, "asc" ]],
    "columns" : [{
        data: {"_" : "date.display", "sort" : "date.timestamp" },
    }]
});

【讨论】:

    【解决方案2】:

    这是一个对我有用的解决方案:

    "order": [[ 0, "desc" ]],
    "columnDefs": [
      {
            "type": "date",
            "render": function (data, type, row, meta) {
              var DateCreated = moment(data, 'DD.MM.YYYY HH:mm').format('YYYY-MM-DD');
              return DateCreated;
            },
            "targets": 0
          },
      ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      • 2019-01-17
      • 2020-06-04
      • 1970-01-01
      相关资源
      最近更新 更多