1.、
/**
* 传入时间戳,计算距离现在的时间
* @param number $time 时间戳
* @return string 返回多少以前
*/
function timeFormat($time) {
$time = (int) substr($time, 0, 10);
$int = time() - $time;
$str = '';
if ($int <= 2){
$str = sprintf('刚刚', $int);
}elseif ($int < 60){
$str = sprintf('%d秒前', $int);
}elseif ($int < 3600){
$str = sprintf('%d分钟前', floor($int / 60));
}elseif ($int < 86400){
$str = sprintf('%d小时前', floor($int / 3600));
}else{
$str = date('Y-m-d H:i', $time);
}
return $str;
}
2、
/*
* 传入格式化的日期格式 2017-06-12
* 小于1分钟 显示 刚刚
* 小于1小时 显示 多少分钟
* 大于1小时小于24小时 显示 多少小时前
* 大于24小时 小于48小时 显示 1天前
* 大于48小时 小于2016年 显示 年月日
* 大于48小时 大于2016年 显示 月日
* 其它 显示 日期
*/
function TurnAskTime($ask_time){
$strtime=strtotime($ask_time);
$year=date('Y',$strtime);
$c = time()-$strtime;
$hour = floor($c/3600);//时
$t_year = date('Y');
if($c<60){
return '刚刚';
}elseif($c<3600){
return ((int)($c/60))."分钟前";
}elseif($hour<24){
return $hour."小时前";
}elseif($year < $t_year){
return date('Y-m-d H:i',$strtime);
}elseif($year = $t_year){
return date('m-d H:i',$strtime);
}else{
return date('Y-m-d H:i',$strtime);
}
}
3、
//消息列表,时间格式
function TurnAskTime2($object_time,$is_str=0){
if($is_str){
$strtime=$object_time;
}else{
$strtime = strtotime($object_time);
}
$year=date('Y',$strtime);
$c = time()-$strtime;
$hour = floor($c/3600);//时
$t_year = date('Y');
if($c <= 60){
return '刚刚';
}elseif($c <= 3600){
return ((int)($c/60))."分钟前";
}elseif($hour <= 24){
return date('H:i',$strtime);
}elseif($year <= $t_year){
return date('m-d H:i',$strtime);
}else{
return date('Y-m-d H:i',$strtime);
}
}
4、
/**
* 获取当前时间差描述
* @param $timeline int unix时间戳
*/
function get_time_before_noew($timeline) {
$currtime = time();
$year=date('Y',$timeline);
$c = $currtime - $timeline;
$hour = floor($c/3600);//时
$t_year = date('Y');
if($c<60){
return '刚刚';
}elseif($c<3600){
return ((int)($c/60))."分钟前";
}elseif($hour<24){
return $hour."小时前";
}elseif($year < $t_year){
return date('Y-m-d H:i',$timeline);
}elseif($year = $t_year){
return date('m-d H:i',$timeline);
}else{
return date('Y-m-d H:i',$timeline);
}
}