PHP时间变成几秒前,几分前,几小时前,几天前SNS模式
date:星期五, 三月 19th, 2010 at 11:54 下午 Categories:php
最近模仿UCHOME的DOING
我寸在MYSQL的时间都是unix时间。
function qtime($time){ $limit = time() - $time; if($limit<60) $time="{$limit}秒前"; if($limit>=60 && $limit<3600){ $i = floor($limit/60); $_i = $limit%60; $s = $_i; $time="{$i}分{$s}秒前"; } if($limit>=3600 && $limit<3600*24){ $h = floor($limit/3600); $_h = $limit%3600; $i = ceil($_h/60); $time="{$h}小时{$i}分前"; } if($limit>=(3600*24) && $limit<(3600*24*30)){ $d = floor($limit/(3600*24)); $time= "{$d}天前"; } if($limit>=(3600*24*30)){ $time=gmdate('Y年n月j日', $time); } return $time; }
使用方法:
$res['postdate']=qtime($res['postdate']);
另外分享网上其他的代码
function time_tran($the_time){ $now_time = date("Y-m-d H:i:s",time()+8*60*60); $now_time = strtotime($now_time); $show_time = strtotime($the_time); $dur = $now_time - $show_time; if($dur < 0){ return $the_time; }else{ if($dur < 60){ return $dur.'秒前'; }else{ if($dur < 3600){ return floor($dur/60).'分钟前'; }else{ if($dur < 86400){ return floor($dur/3600).'小时前'; }else{ if($dur < 259200){//3天内 return floor($dur/86400).'天前'; }else{ return $the_time; } } } } } }
后来发现了个更简单的
function format_date($date,$isShowDate=true) { $limit = time() - $date; if($limit < 60) { return $limit . '秒钟之前'; } if($limit >= 60 && $limit < 3600) { return floor($limit/60) . '分钟之前'; } if($limit >= 3600 && $limit < 86400) { return floor($limit/3600) . '小时之前'; } if($limit >= 86400 and $limit<259200) { return floor($limit/86400) . '天之前'; } if($limit >= 259200 and $isShowDate) { return date('Y-m-d H:i:s', $date); }else{ return ''; } }
