微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php计算几分钟前、几小时前、几天前的几个函数、类

一、函数实现

实例1:

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.'秒前';

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

       }

      }

 }

实例2:

<?PHP

function format_date($time){

    $t=time()-$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.'前';

        }

    }

}

?>

实例3:

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 '刚刚';

}

}

}

实例4:

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.'秒前'; 

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

   }

   }

    }

}

}

}

二、类的实现

<?PHP

/*

 * author: Solon Ring

 * time: 2011-11-02

 * 发博时间计算(年,月,日,时,分,秒)

 * $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',$a->index()):iconv('utf-8','当前');

 *

 */

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐