DataTables按日期排序功能无法按预期工作

时间:2015-05-19 06:53:58

标签: php datatables

我有一个在unixtime中有一列的表。我有一个秒 - >小时功能我运行将125193852379857转换为1天,59小时,9分钟和26秒。

问题是Datatable的排序功能。如果我有3个值,它将按如下方式排序:

 1 day 2 hours 58 minutes and 26 seconds
 1 day 2 hours 59 minutes and 29 seconds
 1 day 2 hours 9 minutes and 42 seconds

我明白为什么,因为它把它视为" 5"而不是" 58,59"。

转换功能:

function secondsToTime($seconds) {
 $dtF = new DateTime("@0");
 $dtT = new DateTime("@$seconds");
 return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');
 }

表:

<tr><th>Total Time</th><td>secondsToTime(1209571298712)</td></tr>
<tr><th>Total Time</th><td>secondsToTime(1598173598862)</td></tr>
<tr><th>Total Time</th><td>secondsToTime(5283749872348)</td></tr>

有解决方法吗?

2 个答案:

答案 0 :(得分:1)

使用data-orderdata-sort属性

例如:

    <td data-order="1303686000">Mon 25th Apr 11</td>

here

了解详情

答案 1 :(得分:0)

美好的一天!

排序正常,因为默认情况下它使用常规排序并将您的值排序为字符串 (见here)。 您可以尝试使用SORT_NATURAL或natsort

进行排序