zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

PHP计算 函数 分享 几个 几天 几分钟 几小时
2023-06-13 09:15:24 时间

一、函数实现
实例1:

复制代码代码如下:

functiontime_tran($the_time){
  $now_time=date("Y-m-dH: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){
     returnfloor($dur/60)."分钟前";
    }else{
     if($dur<86400){
      returnfloor($dur/3600)."小时前";
     }else{
      if($dur<259200){//3天内
       returnfloor($dur/86400)."天前";
      }else{
       return$the_time;
      }
     }
 }

实例2:
复制代码代码如下:
<?php
functionformat_date($time){
   $t=time()-$time;
   $f=array(
       "31536000"=>"年",
       "2592000"=>"个月",
       "604800"=>"星期",
       "86400"=>"天",
       "3600"=>"小时",
       "60"=>"分钟",
       "1"=>"秒"
   );
   foreach($fas$k=>$v)   {
       if(0!=$c=floor($t/(int)$k)){
           return$c.$v."前";
       }
   }
}
?>

实例3:

复制代码代码如下:
functionformatTime($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:

复制代码代码如下:
functiontime_tran($the_time){
$now_time=date("Y-m-dH: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){
  returnfloor($dur/60)."分钟前";
   }else{
  if($dur<86400){
  returnfloor($dur/3600)."小时前";
  }else{
  if($dur<259200){//3天内
      returnfloor($dur/86400)."天前";
  }else{
      return$the_time;
  }
  }
   }
}
}
}

二、类的实现

复制代码代码如下:<?php
/*
 *author:SolonRing
 *time:2011-11-02
 *发博时间计算(年,月,日,时,分,秒)
 *$createtime可以是当前时间
 *$gettime你要传进来的时间
 */

classMygettime{

       function __construct($createtime,$gettime){
           $this->createtime=$createtime;
           $this->gettime=$gettime;
   }

   functiongetSeconds()
   {
           return$this->createtime-$this->gettime;
       }

   functiongetMinutes()
      {
      return($this->createtime-$this->gettime)/(60);
      }

     functiongetHours()
      {
      return($this->createtime-$this->gettime)/(60*60);
      }

     functiongetDay()
      {
       return($this->createtime-$this->gettime)/(60*60*24);
      }

     functiongetMonth()
      {
       return($this->createtime-$this->gettime)/(60*60*24*30);
      }

      functiongetYear()
      {
       return($this->createtime-$this->gettime)/(60*60*24*30*12);
      }

      functionindex()
      {
           if($this->getYear()>1)
           {
                if($this->getYear()>2)
                   {
                       returndate("Y-m-d",$this->gettime);
                       exit();
                   }
               returnintval($this->getYear())."年前";
               exit();
           }

            if($this->getMonth()>1)
           {
               returnintval($this->getMonth())."月前";
               exit();
           }

            if($this->getDay()>1)
           {
               returnintval($this->getDay())."天前";
               exit();
           }

            if($this->getHours()>1)
           {
               returnintval($this->getHours())."小时前";
               exit();
           }

            if($this->getMinutes()>1)
           {
               returnintval($this->getMinutes())."分钟前";
               exit();
           }

          if($this->getSeconds()>1)
           {
               returnintval($this->getSeconds()-1)."秒前";
               exit();
           }

      }

 }
//类的使用实例
/*
 *
 *调用类输出方式
 *
 *$a=newMygettime(time(),strtotime("-25month"));
 *echoiconv("utf-8","gb2312",$a->index())?iconv("utf-8","gb2312",$a->index()):iconv("utf-8","gb2312","当前");
 *
 */