PHP把时间转换成几分钟前、几小时前、几天前的几个函数、类分享

这篇文章主要介绍了php计算时间几分钟前、几小时前、几天前的几个函数、类分享,需要的朋友可以参考下
一、函数实现
实例1:

<?php
header("Content-type: text/html; charset=utf8");
date_default_timezone_set("Asia/Shanghai");   //设置时区
function time_tran($the_time) {
    $now_time = date("Y-m-d H:i:s", time());
    //echo $now_time;
    $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;
                    }
                }
            }
        }
    }
}


echo time_tran("2014-7-8 19:22:01");
?>

实例2:

<?php  
function time_tranx($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;  
                       }  
                  }  
            }  
        }  
   }  
}  
echo time_tranx("2014-7-8 19:22:01");  
?>

实例3:

<?php  
function format_date($time){  
    $t=time()-$time;  
<span style="white-space:pre">    </span>//echo 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.'前';  
        }  
    }  
}  
echo format_date("1404600000");  
?>

实例4:

<?php  
function formatTime($date) {  
    $str = '';  
    $timer = strtotime($date);  
    $diff = $_SERVER['REQUEST_TIME'] - $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 '刚刚';  
                            }  
                       }  
                    }else{  
                        return '刚刚';  
                    }  
               }  
       }else{  
           return '刚刚';  
       }  
    }  
}  
echo formatTime("2014-7-8 19:22:01");  
?>

二、类的实现

<?php  
/* 
 * author: china_skag 
 * time: 2014-07-08 
 * 发博时间计算(年,月,日,时,分,秒) 
 * $createtime 可以是当前时间 
 * $gettime 你要传进来的时间 
 */  
class Mygettime{  
        function  __construct($createtime,$gettime) {  
            $this->createtime = $createtime;  
            $this->gettime = $gettime;  
    }  
    function getSeconds()  
    {  
            return $this->createtime-$this->gettime;  
        }  
    function getMinutes()  
       {  
       return ($this->createtime-$this->gettime)/(60);  
       }  
      function getHours()  
       {  
       return ($this->createtime-$this->gettime)/(60*60);  
       }  
      function getDay()  
       {  
        return ($this->createtime-$this->gettime)/(60*60*24);  
       }  
      function getMonth()  
       {  
        return ($this->createtime-$this->gettime)/(60*60*24*30);  
       }  
       function getYear()  
       {  
        return ($this->createtime-$this->gettime)/(60*60*24*30*12);  
       }  
       function index()  
       {  
            if($this->getYear() > 1)  
            {  
                 if($this->getYear() > 2)  
                    {  
                        return date("Y-m-d",$this->gettime);  
                        exit();  
                    }  
                return intval($this->getYear())." 年前";  
                exit();  
            }  
             if($this->getMonth() > 1)  
            {  
                return intval($this->getMonth())." 月前";  
                exit();  
            }  
             if($this->getDay() > 1)  
            {  
                return intval($this->getDay())." 天前";  
                exit();  
            }  
             if($this->getHours() > 1)  
            {  
                return intval($this->getHours())." 小时前";  
                exit();  
            }  
             if($this->getMinutes() > 1)  
            {  
                return intval($this->getMinutes())." 分钟前";  
                exit();  
            }  
           if($this->getSeconds() > 1)  
            {  
                return intval($this->getSeconds()-1)." 秒前";  
                exit();  
            }  
       }  
  }  
//类的使用实例  
/* 
 * 
 * 调用类输出方式 
 * 
 * $a = new Mygettime(time(),strtotime('-25 month')); 
 * echo iconv('utf-8', 'gb2312', $a->index())?iconv('utf-8', 'gb2312', $a->index()):iconv('utf-8', 'gb2312', '当前'); 
 * 
 */

转载:http://blog.csdn.net/china_skag/article/details/37569505

你可能感兴趣的:(PHP把时间转换成几分钟前、几小时前、几天前的几个函数、类分享)