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);
}
}