javascript - jQuery 数据表插件 : Sort German date

标签 javascript jquery date datatables

我使用 jQuery DataTables 插件,我的问题是我的德国日期没有正确排序。它具有以下格式:dd.mm.YYYY HH:iih

这是我的代码:

JSFIDDLE:

https://jsfiddle.net/uxaLn1e3/3/

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>

JS(更新,使用ajax):

     $('#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 添加一个 data-sort 属性,该属性以标准格式存储日期(我在这里使用了 ISO 格式,即 YYYY-MM-DDTHH :ii:ssZ ):

<tr>
  <td>1</td>
  <td data-sort="2015-08-27T19:00:00Z">27.08.2015 19:00h</td>
  <td>Carl</td>
</tr>
<tr>
  <td>2</td>
  <td data-sort="2016-02-10T14:00:00Z">10.02.2016 14:00h</td>
  <td>Alan</td>
</tr>
<tr>
  <td>3</td>
  <td data-sort="2015-12-07T21:00:00Z">07.12.2015 21:00h</td>
  <td>Bobby</td>
</tr>

现在,datatables 将考虑此 data-sort 值而不是 td 的 html 对列进行排序。

Live Fiddle

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

A.生成 html 时添加 data-sort 属性。

B.使用 jQuery 创建数据表后添加数据排序,然后重新初始化数据表。

关于javascript - jQuery 数据表插件 : Sort German date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467975/

相关文章:

javascript - 我如何向打开 Chrome 控制台的用户显示警告,就像 Facebook 和 Blockchain 一样?

javascript - 在jQuery中单击时使用alt选择多个img

python - 将 Pandas 日期列转换为天

javascript - 下拉框的自定义 CSS

javascript - 在 DOM 元素发起的请求上设置请求 header

javascript - 未选择表单时的 jQuery

jquery - 如何限制可裁剪区域的宽度和高度以输出相同尺寸的图像?

jquery - 如果父级具有特定值的字段,则清除所有嵌套模型

java - 需要更改java中的日期格式

java - 无法将日期很好地返回到 Java App Engine 中