入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

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

创建时间:2014-07-08 投稿人: 浏览次数:18494
这篇文章主要介绍了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", "当前");
 *
 */


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。