本文算法参考: 基于用户投票的排名算法(一):Delicious和Hacker News 实现
Hacker News 是国外一个著名网络社区,可以张贴链接,或者讨论某个主题
该社区post的排名算法, 有着良好的时效性表现, 能将一段时期内热门的post根据投票的结果打分,来判定热度, 详细请看代码:
<?php //将排名下拉的重力因子 //该因子决定了post 的下降速度, 值越高排名下降越快, 时效性的参数之一 define('RANK_G', 1.8); //获得的投票 $vote = 100; //数据创建时间 //$created = strtotime('-1 days'); //$created = strtotime('-1 hours'); $created = strtotime('-3 days'); //距离创建时间的小时数, 时效性的参数之二 $hourDiffCreated = (time() - $created) / 3600; //详细算法 $socre = ($vote - 1) / pow(($hourDiffCreated + 2), RANK_G); echo $socre, "\n";