在文章里面我说了很多关于php计算时间间隔实现程序代码的实现方法原理以及分析如何来做这个功能,有需用的同学可以仔细看看哦。
下面实例是告诉我们在论坛有看到关于多少秒钟前发了帖子等这些功能,
分析
实际时间 PHP
1秒 2“秒”
______________________
30秒==60
5分钟==60*10 //这里我觉得应该是五分钟,而不是一分钟,个人觉得 一分钟的话应该是 60*2
10分钟==60*20
30分钟==60*60
1小时==60*60*2
2.5小时==60*60*5
原理
用当前时间time(),减去你信息录入时的新增时间,(注意是时间戳),然后得出的差数,就是秒数,再根据自己的需要来转换啊。例如你想转换成分钟,就除以60。
实例
代码如下 |
复制代码 |
/** * 时间差计算 * * @param Timestamp $time * @return String Time Elapsed * @author Shelley Shyan * @copyright http://www.phprm.com (Professional PHP Architecture) */ function time2Units ($time) { $year = floor($time / 60 / 60 / 24 / 365); $time -= $year * 60 * 60 * 24 * 365; $month = floor($time / 60 / 60 / 24 / 30); $time -= $month * 60 * 60 * 24 * 30; $week = floor($time / 60 / 60 / 24 / 7); $time -= $week * 60 * 60 * 24 * 7; $day = floor($time / 60 / 60 / 24); $time -= $day * 60 * 60 * 24; $hour = floor($time / 60 / 60); $time -= $hour * 60 * 60; $minute = floor($time / 60); $time -= $minute * 60; $second = $time; $elapse = '';
$unitArr = array('年' =>'year', '个月'=>'month', '周'=>'week', '天'=>'day', '小时'=>'hour', '分钟'=>'minute', '秒'=>'second' );
foreach ( $unitArr as $cn => $u ) { if ( $$u > 0 ) { $elapse = $$u . $cn; break; } }
return $elapse; }
$past = 2052345678; // Some timestamp in the past $now = time(); // Current timestamp $diff = $now - $past;
echo '发表于' . time2Units($diff) . '前'; ?>
|
这是一个刚入门的同学写的
代码如下 |
复制代码 |
$regist1 = "05/12/2006"; $regist2 = "10/05/2007";
list($month1,$day1,$year1) = explode("/",$regist1); list($month2,$day2,$year2) = explode("/",$regist2);
$regist1 = mktime(0,0,0,$month1,$day1,$year1); $regist2 = mktime(0,0,0,$month2,$day2,$year2);
$time_difference = $regist2-$regist1;
echo ("时间差:"); echo date("Y",$time_difference) - 1970; echo ("年"); echo date("m",$time_difference) - 1; echo ("个月"); echo date("d",$time_difference) - 1; echo ("天"); ?>
|
好了喜欢就自己选择用吧。
本文地址:
转载随意,但请附上文章地址:-)