2015-06-20 73 views
0

我有表的日期欄:如何在數據表中進行自定義日期排序?

2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 

但有些細胞沒有日期(我將其標記-)。當我使用的是一般的排序功能,它看起來像:

— 
— 
— 
2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 

,但我需要:

2015-03-03 20:14 
2015-04-15 20:33 
2015-04-20 09:34 
2015-04-28 22:18 
— 
— 
— 
+1

請提供一些樣本HTML –

+1

你能爲它提供小提琴? –

+1

我改進了格式並修正了一些拼寫錯誤以提高可讀性。我還編輯了問題的標題以更好地反映您的問題。 – Ram

回答

0

其實,我在表的末尾而不日期由兩個參數,也可以設置行排序。 我添加了兩個數據屬性(身份和日期時間戳格式):

<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397562467">Status 0</span></td> 
    <td>2015-03-03 20:14</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="1" data-date="1397567321">Status 1</span></td> 
    <td>2015-04-15 20:33</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397567746">Status 0</span></td> 
    <td>2015-04-20 09:34</td> 
</tr> 
<tr> 
    <td><span class="label label-warning" data-status="0" data-date="1397567321">Status 0</span></td> 
    <td>2015-04-15 20:33</td> 
</tr> 

我提出了新的自定義排序功能:

jQuery.fn.dataTableExt.oSort['status-date-asc'] = function(x,y) { 

       var xStatus, xDate, yStatus, yDate; 

       xStatus = $(x).data('status'); 
       yStatus = $(y).data('status'); 
       xDate = $(x).data('date'); 
       yDate = $(y).data('date'); 

       return xStatus > yStatus ? 1 
         : xStatus < yStatus ? -1 
         : xDate > yDate ? 1 
         : xDate < yDate ? -1 : 0; 

      }; 

和init此行與新的排序功能:

 var currentTable = $('#current_table').dataTable({ 

      "aaSorting": [ [5, 'asc'] ], 
      "aoColumns": [ 
       null, 
       null, 
       null, 
       null, 
       null, 
       { "sType": 'status-date' }, 
       null, 
       null, 
       null 
      ], 
     }); 

最後看起來:

  • 個狀態0,日期2015年3月3日= 20:14
  • 狀態0,日期2015年4月15日= 20時33
  • 狀態0,日期2015年4月20日= 9點34
  • 狀態0,日期2015年4月28日= 22:18
  • 狀態0,日期= N/A
  • 狀態0,日期= N/A
  • 狀態0,日期= N/A
  • 狀態1 ,date = 2015-03-03 20:14
  • status 1,date = 2015-04-15 20:33
  • 狀態1,日期2015年4月20日= 9點34
  • 狀態1,日期2015年4月28日= 22:18
  • 狀態1,日期= N/A
  • 狀態1,日期= N/A
  • 狀態1,日期= N/A
+0

這是所需的輸出?這是解決您的問題嗎? – showdev

+0

是的,這是解決方案 –

相關問題