PHP多种格式显示日期函数_[PHP教程] 显示效果如下:
2010-01-21 10:33:15 35分钟前 -------------------------------- 2010-01-20 10:33:15 1天前 -------------------------------- 2010-01-19 9:33:15 2天1小时前 -------------------------------- 2010-01-14 10:33:15 1星期前 -------------------------------- 2010-01-7 08:33:15 2星期前 -------------------------------- 2009-12-13 10:33:15 1个月9天前 -------------------------------- 2009-01-18 10:33:15 1年前 -------------------------------- 2008-11-18 10:33:15 1年2月前 --------------------------------
代码:
function usertime($times) { if( $times == ’’ || $times==0) return false; $dtime =is_int($times) ? $times : strtotime($times); $ptime = time() - $dtime; if( $ptime < 60 ) { $pct = sprintf("%d秒前",$ptime); } else if( $ptime > 60 && $ptime < 3600 ) { $pct = sprintf("%d分钟前",ceil( $ptime / 60 )); } else if( $ptime > 3600 && $ptime < (3600 * 24) ) { $pct = sprintf("%d小时%d分钟前", floor( $ptime / 3600 ), ceil( ( $ptime % 3600 ) / 60 )); }
else if( $ptime > (3600 * 24) && $ptime < (3600*24*7)) { $d = $ptime / (3600*24); $h = ( $ptime % (3600*24)) / 3600; $m = ceil( ( ( $ptime % (3600*24)) % 3600 ) / 60 ); //$pct = sprintf("%d天%d小时%d分钟前", $d, $h, $m ); if($h>=1) { $pct = sprintf("%d天%d小时前", $d, $h); } else{ $pct = sprintf("%d天前",$d); } }
else if( $ptime > (3600 * 24 *7) && $ptime < (3600*24*30)) { $w = $ptime / (3600*24*7); $d = ($ptime % (3600*24*7))/(3600*24); $h=(($ptime%(3600*24*7))%(3600*24))/3600; $m = ceil( ( ( $ptime % (3600*24)) % 3600 ) / 60 ); //$pct = sprintf("%d星期%d天%d小时前",$w, $d, $h); if($d>=1) { $pct = sprintf("%d星期%d天前",$w, $d); } else{ $pct = sprintf("%d星期前",$w); } } else if( $ptime > (3600 * 24 *30) && $ptime < (3600*24*365)) { $mt = $ptime / ( 3600*24*30); $d = ($ptime % ( 3600*24 * 30))/ (3600*24); $h = ( ($ptime % ( 3600*24 * 30))% (3600*24)) / 3600; $m = ceil( ( ($ptime % ( 3600*24 * 30))% (3600*24)) % 3600 / 60 ); //$pct = sprintf("%d月%d天%d小时%d分钟前", $mt, $d, $h, $m ); if($d>=1) { $pct = sprintf("%d个月%d天前",$mt,$d); } else{ $pct = sprintf("%d个月前",$mt); } } else //n年前 { $y = $ptime / (3600*24*365); $m = ($ptime % (3600*24*30*12))/(3600*24*30); if($m>=1) { $pct = sprintf("%d年%d月前",$y,$m); } else{ $pct = sprintf("%d年前",$y); } }
return $pct; }
?>
|