在文章里面我說了很多關于php計算時間間隔實現程序代碼的實現方法原理以及分析如何來做這個功能,下面實例是告訴我們在論壇有看到關于多少秒鐘前發了帖子等這些功能.
分析:實際時間
- 30秒==60
- 5分鐘==60*10 //這里我覺得應該是五分鐘,而不是一分鐘,個人覺得 一分鐘的話應該是 60*2
- 10分鐘==60*20
- 30分鐘==60*60
- 1小時==60*60*2
- 2.5小時==60*60*5
原理:用當前時間time(),減去你信息錄入時的新增時間,(注意是時間戳),然后得出的差數,就是秒數,再根據自己的需要來轉換啊,例如你想轉換成分鐘,就除以60。
實例:代碼如下
- <?php
- /**
- * 時間差計算
- *
- * @param Timestamp $time
- * @return String Time Elapsed
- * @author Shelley Shyan
- * @copyright http://www.49028c.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) . '前';
- ?>
這是一個剛入門的同學寫的,代碼如下:
- <?php
- $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 ("天");
- ?>
新聞熱點
疑難解答