我有这个PHP函数从时间戳返回 timeAgo 。
function time_ago($time) {
$periods = array('second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade');
$lengths = array('60', '60', '24', '7', '4.35', '12', '10');
$now = time();
$difference = $now - $time;
for ($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
$difference = round($difference);
if ($difference != 1) {
$periods[$j] .= 's';
}
return $difference . ' ' . $periods[$j] . ' ago';
}
现在,如果时间戳大于现在,它将返回&#34; 47年前&#34;。
如何让它返回&#34; 在3天,5小时,16分钟&#34;如果时间戳大于现在?
感谢。
答案 0 :(得分:1)
Service
这可能有用。虽然我没有看到添加不同时段的循环,但只是第一场比赛。即便如此,你可能忘记在比赛结束后打破循环。
编辑:您可能最好使用DateTime :: diff函数,它与&#34;格式&#34;混合使用。函数可以更准确,更有效地自动化这个过程(因为你的循环是不完整的,它只处理数组中的最后一次迭代)