Вот код, который я использую …
function calculate_rank_sum($score, $created_at) {
$order = log10(max(abs($score), 1));
if ($score > 0) {
$sign = 1;
}elseif ($score < 0) {
$sign = -1;
}else{
$sign = 0;
}
$seconds = intval(($created_at - mktime(0, 0, 0, 1, 1, 1970)) / 86400);
$long_number = $order + $sign * $seconds / 45000;
return round($long_number, 7);
}
Задача ещё не решена.
Других решений пока нет …