按日期排序的数据表功能不能正常工作


DataTables sort by date function not working as desired

我有一个表,它在unix中有一个列。我有一个秒->小时函数,我运行转换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>

有办法解决这个问题吗?

使用data-orderdata-sort属性

例如:

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

阅读更多内容

大家好!

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

进行排序