在 PHP 中查找自日期时间以来经过的时间
确定自特定日期和时间以来经过的时间在各种应用程序中非常有用,例如显示事件发生以来的时间。在 PHP 中,有多种方法可以以用户友好的方式计算和格式化经过的时间。
计算经过的时间
计算给定日期之间经过的时间time 和当前时间,您可以使用 strtotime() 函数将日期时间的字符串表示形式转换为时间戳。然后可以从当前时间戳中减去时间戳,当前时间戳表示自 Unix 纪元(1970 年 1 月 1 日 UTC)以来的当前时间(以秒为单位)。
例如:
$time = strtotime('2010-04-28 17:25:43'); $elapsedTime = time() - $time;
格式化经过时间
将经过时间作为数字后秒,您可以以用户友好的方式格式化它。一种常见的方法是将秒转换为分钟、天或年等单位。您可以使用循环迭代单位列表及其相应的秒数,然后返回适当的单位及其值。
例如,以下函数计算并格式化经过的时间:
function humanTiming($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':''); } }
用法示例
要使用此函数,您只需将时间戳作为参数:
$time = strtotime('2010-04-28 17:25:43'); echo 'Event happened '.humanTiming($time).' ago';
这将以适合用户显示的格式输出经过的时间,例如“事件发生在 4 天前”或“事件发生在 1 分钟前”。
以上是如何在 PHP 中计算和格式化自某个日期以来经过的时间?的详细内容。更多信息请关注PHP中文网其他相关文章!