2014-10-20 124 views
2

我正在使用DataTables顯示一些包含日期列的MySQL數據。在jQuery DataTables中按DD/MM/YYY排序日期列1.10.2

我表格中的所有日期數據都以DD/MM/YYYY格式顯示,無論我嘗試了多少不同的事情,我都無法用除前兩個數字之外的任何其他方式對它進行排序。

我目前使用排序的這種方法,我覺得很適合我的最佳數據:

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

"columns": [ 
     { "data": "Address" }, 
     { "data": "Date_seen", "type" : "date-uk" }, 

我也嘗試過使用這種方法,更像是在數據表的例子排序網站:

"columnDefs": [ 
     { "type": "date-uk", "targets": 1 } 
    ], 

我試圖複製在插件代碼,以我的JavaScript文件,並且還試圖通過數據表引用插件CDN。

我意識到有很多類似的問題,但它們似乎都與幾年前舊版本的DataTables有關,並且包含使用較早的初始化,如sType,aaSortingaoColumns

我希望有人可以闡明爲什麼這不起作用,這讓我發瘋!

+1

不知道爲什麼,在鏈接顯示的代碼是不是爲你工作。在jsfiddle.net中創建一個包含您的嘗試的演示。可以將CDN資源用於插件和CSS代碼。 – charlietfl 2014-10-20 15:39:20

+1

@charlietfl感謝您的回覆。我擔心我無法將自己的嘗試放入jsfiddle中,因爲我正在處理包含敏感病人信息的醫療保健系統,而且在我測試時,MySQL數據庫僅在我的機器上本地託管。查看更多我的JavaScript文件會有幫助嗎?只是爲了測試更小規模的日期排序,我做了一個組成信息的jsfiddle,它運行時沒有問題... http://jsfiddle.net/mikethirteen/k9rm3qL6/3/ – mikethirteen 2014-10-21 09:20:17

回答

4

儘管我還沒有發現爲什麼使用上面的插件不適合我,我已經實現了一個解決方法,在我的情況下可以解決這個問題。

DataTables在默認情況下使用YYYY-MM-DD處理日期,所以我創建了第二個日期列,其中數據以這種方式進行格式化。我還使用JavaScript函數在原始格式更改時更新此格式的列。

在原始列上使用DataTables選項iDataSort,並使用bVisible隱藏此新的「默認日期」列,現在顯示我的原始列,但使用隱藏的「默認日期」列進行排序。以下是我如何初始化此解決方法的示例。

"columns": [ 
     { "data": "Name_of_Patient", "width" : "10%" }, 
     { "data": "Address" }, 
     { "data": "Hospital_Number" }, 
     { "data": "PCT" }, 
     { "data": "Date_of_Pres", "iDataSort" : 5 }, 
     { "data": "Date_of_Pres_Sort", "bVisible" : false } 
], 
+0

這是一個非常有用的工作,我謝謝你! – 2014-10-28 16:38:37

+0

@mikethirteen,我與你有同樣的問題,但是,區別在於我是1)使用服務器端處理和2)我的日期值是格式化的服務器端。我試着使用你的解決方案,但它不適合我,所以我只想知道你是否使用服務器端處理和服務器端格式化值? – Janpan 2015-11-04 09:24:03