0
我正在使用datatable plugin版本1.8.2在我的網頁上顯示錶。jquery datatable日期排序問題
它工作正常除了。 日期對象未正確排序,它顯示「無效日期」。下面是我的代碼片段。
$(document).ready(function() {
jQuery.fn.dataTableExt.oSort['usdate-asc'] = function(a,b) {
/*
a and b are <div> tag with date
*/
var texta = ($(a).text()).toString(); // Here I am able to see my date in ' 03-17-2015 12:25:21 AM ' format
var textb = ($(b).text()).toString();// Here I am able to see my date in ' 03-17-2015 12:25:21 AM ' format
var usDatea = new Date(Date.parse(texta)); // Here it is showing "invalid date"
var usDateb = new Date(Date.parse(textb));
return ((usDatea < usDateb) ? -1 : ((usDatea > usDateb) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['usdate-desc'] = function(a,b) {
/*
a and b are <div> tag with date
*/
var texta = ($(a).text()).toString(); //same as above
var textb = ($(b).text()).toString(); //same as above
var usDatea = new Date(Date.parse(texta)); //same as above
var usDateb = new Date(Date.parse(textb)); //same as above
return ((usDatea < usDateb) ? 1 : ((usDatea > usDateb) ? -1 : 0));
};
$('#tablegridname').dataTable({
"sPaginationType": 'full_numbers',
"bJQueryUI": true,
"iDisplayLength": 50,
"aLengthMenu":[50,100,500,1000],
"aaSorting": [[ 4, 'desc' ]],
"aoColumns": [null, null, null, null, {"sType": "usdate"}]
});
});
});
日期如何?這聽起來像是你有一些日期格式爲'Data.parse()'不能識別。順便說一句 - 你應該考慮將你的數據表版本升級到至少1.9.4版本。 – davidkonrad 2015-04-01 12:34:17
你的問題是你的日期(03-17-2015 12:25:21 AM)沒有被接受的格式。你的日期是01-02-2015你期望什麼行爲? 1月2日(美國)或2月1日(世界大部分地區)?看看這裏,並嘗試以這種格式得到你的日期:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse – 2015-04-01 16:13:25
@davidkonrad我不能這樣做。因爲一切工作正常,除了日期排序和客戶端不會除了:( – user3035305 2015-04-01 17:45:49