/**
* 把两个日期格式的字符串转化成unix时间戳,
* 然后相减获得时间戳差。最后判断剩余时间,生成类似(2小时30分钟20秒前发布)
* 这样的时间格式
*
* @link http://www.thinkphp.cn/code/455.html
*
* @param string $time_s
* @param string $time_n
*/
function gettime($time_s,$time_n){
$time_s = strtotime($time_s);
$time_n = strtotime($time_n);
$strtime = '';
$time = $time_n-$time_s;
if($time >= 86400){
return $strtime = date('Y-m-d H:i:s',$time_s);
}
if($time >= 3600){
$strtime .= intval($time/3600).'小时';
$time = $time % 3600;
}else{
$strtime .= '';
}
if($time >= 60){
$strtime .= intval($time/60).'分钟';
$time = $time % 60;
}else{
$strtime .= '';
}
if($time > 0){
$strtime .= intval($time).'秒前';
}elseif($time < 0){
$strtime .= "时间错误";
}else{
$strtime .= "前";
}
return $strtime;
}
/**
* 返回距离现在时间的格式,如1秒前,1分前,1小时前,1天前,1周前
*
* @link http://www.9958.pw/post/php_time_juli
*
* @param int $time 时间戳
*/
function maktimes($time)
{
$t=time()-$time;
$f=array(
'31536000'=> '年',
'2592000' => '个月',
'604800' => '星期',
'86400' => '天',
'3600' => '小时',
'60' => '分钟',
'1' => '秒'
);
foreach ($f as $k=>$v){
if (0 !=$c=floor($t/(int)$k)){
return $c.$v.'前';
}
}
}