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

前端技术 2023/09/07 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\', \'gb2312\', $a->index()):iconv(\'utf-8\', \'gb2312\', \'当前\');
 *
 */

本文地址:https://www.stayed.cn/item/19690

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。