我有一个表,它在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-order
或data-sort
属性
例如:
<td data-order="1303686000">Mon 25th Apr 11</td>
阅读更多内容
大家好!
Sort工作正常,因为默认情况下它使用常规排序并将您的值排序为字符串(参见这里)。您可以尝试使用SORT_NATURAL或natsort