php 时间前函数
php time ago function
我只需要一个以以前格式显示时间的函数的提示。
在我的数据库中,我将时间标记为时间戳。有来自用户的评论,日期为时间戳。这个日期需要换算成以前的时间。我有一个功能,但不能为每条评论召回。它只对 1 条评论工作 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':'');
}
}
这可能是重复的,但关闭它不会告诉您代码中的问题所在。
return
statement 会立即return 从函数传递的值,并结束函数的执行。因此,您将永远无法通过 foreach
循环的第一个 运行。可能你想要做的是这样的,你在循环中建立一个字符串,然后 return 它:
$ret = "";
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
$ret .= $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
return $ret;
我实际上并没有检查你的代码是否有效,但这是你问题的症结所在。
我只需要一个以以前格式显示时间的函数的提示。 在我的数据库中,我将时间标记为时间戳。有来自用户的评论,日期为时间戳。这个日期需要换算成以前的时间。我有一个功能,但不能为每条评论召回。它只对 1 条评论工作 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':'');
}
}
这可能是重复的,但关闭它不会告诉您代码中的问题所在。
return
statement 会立即return 从函数传递的值,并结束函数的执行。因此,您将永远无法通过 foreach
循环的第一个 运行。可能你想要做的是这样的,你在循环中建立一个字符串,然后 return 它:
$ret = "";
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
$ret .= $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
return $ret;
我实际上并没有检查你的代码是否有效,但这是你问题的症结所在。