加入收藏 | 设为首页 | 会员中心 | 我要投稿 驾考网 (https://www.jiakaowang.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-05-31 10:48:47 所属栏目: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);

$
一、函数实现

实例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','当前');

 

(编辑:驾考网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章