php时间前的功能

时间:2017-02-18 20:51:31

标签: php time timestamp timeago

我只需要一个显示前一格式时间的函数的提示。 在我的数据库中,我有时间作为时间戳。用户的评论包含日期作为时间戳。此日期需要在之前转换。我有一个功能,但每次评论都无法召回。它只有1次评论工作。有人可以帮忙吗?

这是我的功能

function humanTiming($time)
{

$time = time() - $time; // to get the time since that moment
$time = ($time<1)? 1 : $time;
$tokens = array (
    31536000 => 'year',
    2592000 => 'month',
    604800 => 'week',
    86400 => 'day',
    3600 => 'hour',
    60 => 'minute',
    1 => 'second'
);

foreach ($tokens as $unit => $text) {
    if ($time < $unit) continue;
    $numberOfUnits = floor($time / $unit);
    return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}

}

1 个答案:

答案 0 :(得分:0)

这可能是重复的,但关闭它不会告诉您代码中的问题是什么。

return statement将立即返回函数传递的值,并结束函数的执行。因此,您永远不会超过foreach循环的第一次运行。可能你想要做的就是这样,你在循环中构建一个字符串,然后返回它:

$ret = "";
foreach ($tokens as $unit => $text) {
    if ($time < $unit) continue;
    $numberOfUnits = floor($time / $unit);
    $ret .= $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
return $ret;

我没有真正检查您的代码是否有效,但这是您问题的症结所在。