2010-06-23 64 views
0

我想我怎樣才能改變這個按時間排序呢?

年月日小時分鐘PM/AM(MM/DD/YYYY高mm TT)

排序我想改變這個是什麼DD/MM/YY

然而我不知道如何做到這一點

jQuery.fn.dataTableExt.oSort['uk_date-asc'] = function(a,b) { 
    var ukDatea = a.split('/'); 
    var ukDateb = b.split('/'); 

    var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1; 
    var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1; 

    return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
}; 

jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) { 
    var ukDatea = a.split('/'); 
    var ukDateb = b.split('/'); 

    var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1; 
    var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1; 

    return ((x < y) ? 1 : ((x > y) ? -1 : 0)); 
}; 

http://datatables.net/plug-ins/sorting

編輯

所以我得到它排序上升,但我不知道如何寫下降。

jQuery.fn.dataTableExt.oSort['datetime-asc'] = function (a, b) 
{ 
    var firstDate = new Date(a); 
    var secondDate = new Date(b); 

    if (firstDate == secondDate) 
    { 
     return 0; 
    } 
    else if (firstDate > secondDate) 
    { 
     return 1; 
    } 
    else 
    { 
     return -1; 
    } 
}; 

jQuery.fn.dataTableExt.oSort['datetime-desc'] = function (a, b) 
{ 
    var firstDate = new Date(a); 
    var secondDate = new Date(b); 

    if (secondDate == firstDate) 
    { 
     return 0; 
    } 
    else if (secondDate > firstDate) 
    { 
     return 1; 
    } 
    else 
    { 
     return -1; 
    } 
}; 
+0

只需更改降序版本的返回值即可。 'if(a> b){return -1; }' – nil 2010-06-23 05:38:38

回答

0

什麼演示代碼確實基本上是這樣的:

  1. 拆分日期字符串。
  2. 將結果數組按照所需的排序類型排列在一起。例如23/06/10的結果將是100623.
  3. 通過應用數學運算符獲取它的整數值。
  4. 比較它們。

如果用戶數據有一些像04/06/89和23/06/10這樣的日期,代碼就有嚴重的缺陷。

如果您的日期字符串默認爲the formats that JavaScript recognizes之一,我建議您先構造兩個Date對象。例如

var x = new Date(a); 
var y = new Date(b); 
if (x.getMonth() > y.getMonth() || x.getDate() > y.getDate()) { 
    return 1; 
} else if (x.getMonth() < y.getMonth() || x.getDate() < y.getDate()) { 
    return -1; 
} else { 
    return 0; 
} 

豐富這一代碼通過引用的JavaScript API Date,你會得到你的結果。

+0

因此1大於-1,-1小於零相等? – chobo2 2010-06-23 04:00:23

+0

@ chobo2是的,你是對的。 – nil 2010-06-23 04:28:30

+0

ok看到我的編輯。 – chobo2 2010-06-23 05:23:36