Php 如何对数组数据使用函数
我有一个span标记,其中包含数组数据,如Php 如何对数组数据使用函数,php,arrays,function,Php,Arrays,Function,我有一个span标记,其中包含数组数据,如 现在是发表评论的时候了,时间是2014-04-11 05:07:52 现在我有一个函数,它以x小时前的格式显示时间 下面是函数 define("SECOND", 1); define("MINUTE", 60 * SECOND); define("HOUR", 60 * MINUTE); define("DAY", 24 * HOUR); define("MONTH", 30 * DAY); function relTime($time)
现在是发表评论的时候了,时间是2014-04-11 05:07:52
现在我有一个函数,它以x小时前的格式显示时间
下面是函数
define("SECOND", 1);
define("MINUTE", 60 * SECOND);
define("HOUR", 60 * MINUTE);
define("DAY", 24 * HOUR);
define("MONTH", 30 * DAY);
function relTime($time)
{
$now = new DateTime;
$dateObj = new DateTime($dt);
$diff = (array) $now->diff($dateObj);
$diff['w'] = floor($diff['d'] / 7);
$diff['d'] -= $diff['w'] * 7;
$tokens = array(
'y' => 'year',
'm' => 'month',
'w' => 'week',
'd' => 'day',
'h' => 'hour',
'i' => 'minute',
's' => 'second'
);
foreach ($tokens as $unit => &$text)
{
if ($diff[$unit])
{
$text = sprintf(
'%s %s%s',
$diff[$unit], $text, ($diff[$unit] > 1 ? 's' : '')
);
}
else
{
unset($tokens[$unit]);
}
}
return array_shift($tokens);
}
现在,我如何调用该函数并以所需格式回显该时间
请帮帮我有一个更好更干净的方法来实现这一点。这里有一个函数,给定一个日期/时间字符串和一个格式字符串,它将以所需的格式返回与现在的差异
function getDatetimeDifference($datetime, $format) {
$datetime_obj = new DateTime($datetime);
$now = new DateTime();
$difference = date_diff($now, $datetime_obj);
$result = $difference->format($format);
return $result;
}
下面是一个用例:
echo getDatetimeDifference(
'2013-04-11 10:35:33',
'%R%a days, %h hours, %i minutes, %s seconds ago'
);
// Outputs "-364 days, 23 hours, 55 minutes, 10 seconds ago"
如果你想计算自那以后的总小时数,那么如果你使用时间戳,你会得到更好的结果,因为你可以很容易地减去时间差,然后除以3600,得到以小时为单位的时间差
请记住,如果您不传递适当的格式,DateTime对象将溢出-例如,如果您使用上述函数仅获取从现在到去年的小时数,那么结果将是23小时。我的建议-使用类似的函数,传递一个合适的格式,稍后可以在标记中解析,并消除从左到右的标记,直到达到非负值
干杯。var_dump(relTime($comments_array[$j]['posted_time'));要查看从函数中获得的数据…@Jonasm page在使用该函数后变为空白。