首頁  >  文章  >  後端開發  >  PHP取得時間差

PHP取得時間差

高洛峰
高洛峰原創
2016-10-21 10:20:562000瀏覽

PHP取得時間差,我們在開發過程中,這是一個經常使用到的函數,比如說我們想查某個時間段的數據,那就要用到這個函數了。


實例一:

/**
 * 功能:获取时间差
 * @param int $time
 * @return string 时间差值
 */
function tranTime($time) {
    $rtime = date("m-d H:i",$time);
    $htime = date("H:i",$time);
 
    $time = time() - $time;
 
    if ($time < 60) {
        $str = &#39;刚刚&#39;;
    }
    elseif ($time < 60 * 60) {
        $min = floor($time/60);
        $str = $min.&#39;分钟前&#39;;
    }
    elseif ($time < 60 * 60 * 24) {
        $h = floor($time/(60*60));
        $str = $h.&#39;小时前 &#39;.$htime;
    }
    elseif ($time < 60 * 60 * 24 * 3) {
        $d = floor($time/(60*60*24));
        if($d==1)
           $str = &#39;昨天 &#39;.$rtime;
        else
           $str = &#39;前天 &#39;.$rtime;
    }
    else {
        $str = $rtime;
    }
    return $str;
}

實例二:

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.&#39;秒前&#39;;
    }else{
     if($dur < 3600){
      return floor($dur/60).&#39;分钟前&#39;;
     }else{
      if($dur < 86400){
       return floor($dur/3600).&#39;小时前&#39;;
      }else{
       if($dur < 259200){//3天内
        return floor($dur/86400).&#39;天前&#39;;
       }else{
        return $the_time;
       }
      }
 }

實例三:

function format_date($time){
    $t=time()-$time;
    $f=array(
        &#39;31536000&#39;=>&#39;年&#39;,
        &#39;2592000&#39;=>&#39;个月&#39;,
        &#39;604800&#39;=>&#39;星期&#39;,
        &#39;86400&#39;=>&#39;天&#39;,
        &#39;3600&#39;=>&#39;小时&#39;,
        &#39;60&#39;=>&#39;分钟&#39;,
        &#39;1&#39;=>&#39;秒&#39;
    );
    foreach ($f as $k=>$v)    {
        if (0 !=$c=floor($t/(int)$k)) {
            return $c.$v.&#39;前&#39;;
        }
    }
}

實例四:

function formatTime($date) {
$str = &#39;&#39;;
$timer = strtotime($date);
$diff = $_SERVER[&#39;REQUEST_TIME&#39;] - $timer;
$day = floor($diff / 86400);
$free = $diff % 86400;
if($day > 0) {
return $day."天前";
}else{
if($free>0){
$hour = floor($free / 3600);
$free = $free % 3600;
if($hour>0){
return $hour."小时前";
}else{
if($free>0){
$min = floor($free / 60);
$free = $free % 60;
if($min>0){
return $min."分钟前";
}else{
if($free>0){
return $free."秒前";
}else{
return &#39;刚刚&#39;;
}
}
}else{
return &#39;刚刚&#39;;
}
}
}else{
return &#39;刚刚&#39;;
}
}
}

例子

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn