Javascript jquerydatatables插件:对德语日期排序

Javascript jquerydatatables插件:对德语日期排序,javascript,jquery,date,datatables,Javascript,Jquery,Date,Datatables,我使用jQueryDataTables插件,我的问题是我的德语日期没有正确排序。它的格式如下:dd.mm.YYYY HH:iih 下面是我的代码: JSFIDDLE: <table id="my-table"> <thead> <th>Nr. </th> <th>Date</th> <th>Name</th> </thead>

我使用jQueryDataTables插件,我的问题是我的德语日期没有正确排序。它的格式如下:
dd.mm.YYYY HH:iih

下面是我的代码:

JSFIDDLE:

    <table id="my-table">
   <thead>
      <th>Nr. </th>
      <th>Date</th>
      <th>Name</th>
   </thead>
   <tr>
      <td>1</td>
      <td>27.08.2015 19:00h</td>
      <td>Carl</td>
   </tr>
   <tr>
      <td>2</td>
      <td>10.02.2016 14:00h</td>
      <td>Alan</td>
   </tr>
   <tr>
      <td>3</td>
      <td>07.12.2015 21:00h</td>
      <td>Bobby</td>
   </tr>
</table>
     $('#my-table').DataTable({
            "ajax": 'my_url',
            "columns": [
                {"data": "nr"},
                {"data": "date"},
                {"data": "name"}
            ],
                "autoWidth": false,
                "order": [],
                "fnCreatedRow": function( nRow, aData, iDataIndex ) {
                   var dateFull = aData.date;
                   var dateFullItems = dateFull.split(' ');
                   var dateDatum = dateFullItems[0];
                   var dateDatumItems = dateDatum.split('.');
                  var dateTime = dateFullItems[1];
                  var dateFormat = dateDatumItems[2] + '-' + dateDatumItems[1] + '-' + dateDatumItems[0] + 'T' + dateTime + ':00Z'; 

                  $(nRow).find('td:nth-of-type(2)').attr('data-sort', dateFormat);
            },
            });

HTML:

    <table id="my-table">
   <thead>
      <th>Nr. </th>
      <th>Date</th>
      <th>Name</th>
   </thead>
   <tr>
      <td>1</td>
      <td>27.08.2015 19:00h</td>
      <td>Carl</td>
   </tr>
   <tr>
      <td>2</td>
      <td>10.02.2016 14:00h</td>
      <td>Alan</td>
   </tr>
   <tr>
      <td>3</td>
      <td>07.12.2015 21:00h</td>
      <td>Bobby</td>
   </tr>
</table>
     $('#my-table').DataTable({
            "ajax": 'my_url',
            "columns": [
                {"data": "nr"},
                {"data": "date"},
                {"data": "name"}
            ],
                "autoWidth": false,
                "order": [],
                "fnCreatedRow": function( nRow, aData, iDataIndex ) {
                   var dateFull = aData.date;
                   var dateFullItems = dateFull.split(' ');
                   var dateDatum = dateFullItems[0];
                   var dateDatumItems = dateDatum.split('.');
                  var dateTime = dateFullItems[1];
                  var dateFormat = dateDatumItems[2] + '-' + dateDatumItems[1] + '-' + dateDatumItems[0] + 'T' + dateTime + ':00Z'; 

                  $(nRow).find('td:nth-of-type(2)').attr('data-sort', dateFormat);
            },
            });

在我的JS中,我需要做哪些调整来对工作日期进行排序?

td
添加
数据排序属性,以标准格式存储日期(我在这里使用了ISO格式,即
YYYY-MM-DDTHH:ii:ssZ
):


1.
2015年8月27日19:00
卡尔
2.
2016年2月10日14:00
艾伦
3.
2015年12月7日21:00
鲍比
<>现在>代码>数据项< /代码>将考虑此代码>数据排序< /代码>值,而不是HTML >代码> TD < /代码>对列进行排序。

即使动态创建表,也可以通过两种方式实现:

A.在生成html时添加
数据排序
属性


B.在使用jQuery创建数据表后,添加一个
数据排序
,然后重新输入数据表。

我认为您必须为性别数据脚本使用日期时间格式插件,或者为格式化日期时间排序插件(我推荐)


示例:jsfiddle.net/x92amfe4/4/

您可以通过从字符串生成JavaScript日期对象来对日期进行排序。 然后,您只需将德语日期(“dd.mm.yy”)拆分并创建一个新日期:

      new Date(date.split('.')[2], date.split('.')[1]-1, date.split('.')[0])
对于德国日期的排序:

dates.sort((a, b) => {
      return new Date(b.split('.')[2], b.split('.')[1]-1, b.split('.')[0]) - new Date(a.split('.')[2], a.split('.')[1]-1, a.split('.')[0]) 
});

注: 您可以使用任何日期格式创建JavaScript日期对象

new Date(year, month(0-11) [, day [, hour [, minutes [, seconds [, milliseconds]]]]]);

你可以试试这个,我已经试过了。我将
$.fn.dataTable.moment('DD.MM.YYY HH:MM')
放在我的
$('#我的表').dataTable(…)声明之前。我收到以下控制台错误消息:
$.fn.dataTable.矩不是函数
您甚至可能想更进一步,使用没有时区的裸时间戳值,或者使用UTC时间和ISO-8601格式进行排序。刚刚注意到,现在您正在使用祖鲁时间,这是我推荐的一件事。功能不错。另请参见此@void:Thank you。实际上,我确实使用ajax加载数据<代码>“ajax”:“{url('my_url',{idUser':''}}}}}+id,“columns”:[{“data”:“nr”},{“data”:“date”},{“data”:“name”}]
我不明白如何在这个上下文中添加带有日期的数据排序属性。你能解释一下吗?我刚更新了我的帖子。如何将数据排序解决方案集成到更新的代码中?