简体   繁体   English

数据库日期排序dd-mm-yyyy问题

[英]Datatable date sorting dd-mm-yyyy issue

<table id="example">
   <thead>
      <tr>
         <th>Name</th>
         <th>Date</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>A</td>
         <td>30-08-2015</td>
      </tr>
      <tr>
         <td>B</td>
         <td>29-08-2015</td>
      </tr>
      <tr>
         <td>C</td>
         <td>04-09-2015</td>
      </tr>
      <tr>
         <td>D</td>
         <td>01-09-2015</td>
      </tr>
      <tr>
         <td>E</td>
         <td>14-09-2015</td>
      </tr>
   </tbody>
</table>

And my script: 我的剧本:

$.fn.dataTableExt.oSort, {
    "date-uk-pre": function ( a ) {
        var ukDatea = a.split('-');
        return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
    },
    "date-uk-asc": function ( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "date-uk-desc": function ( a, b ) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
};  
var table = $('#example');
var oTable = table.dataTable({
    "columns": [
        null,
        { "type": "date-uk" }
    ],
    "order": [[1,'asc']],
});

I want show sort by date DESC, how to fix it? 我想显示按日期排序DESC,如何修复它?

use HTML5 data-* attributes - cell data . 使用HTML5 data- *属性 - 单元格数据

With the attribute data-order and as value the timestamp of date (PHP : date("U") ). 使用属性data-order和value作为日期的时间戳(PHP: date("U") )。 Exemple : 例如:

<td data-order="1231718400">Mon 12th Jan 09</td>

SOLUTION

Use the code below: 使用以下代码:

$.fn.dataTableExt.oSort, {
    "date-uk-pre": function ( a ) {
        var ukDatea = a.split('-');
        return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
    },
    "date-uk-asc": function ( a, b ) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "date-uk-desc": function ( a, b ) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
};  

$(document).ready(function (){
   var table = $('#example');
   var oTable = table.dataTable({
      "columns": [
         null,
         { "type": "date-uk" }
      ],
      "order": [[1, 'desc']]
   });
});

DEMO DEMO

See this jsFiddle for code and demonstration. 有关代码和演示,请参阅此jsFiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM