在文章裡面我說了很多關於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。
實例
代碼如下 復制代碼<?php
/**
* 時間差計算
*
* @param Timestamp $time
* @return String Time Elapsed
* @author Shelley Shyan
* @copyright http://www.bKjia.c0m (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 ("天");
?>
好了喜歡就自己選擇用吧。