网站地图    收藏   

主页 > php专栏 > php日期 >

php显示文章 几分钟前,几小时前,几天前发布类

来源:自学PHP网    时间:2014-11-30 11:50 作者: 阅读:

[导读] 文章发表时的UNIX时间戳,来转化为例如,几分钟前,几小时前,几天前 这样的提示,如微博,这看起来更加人性化,类代码如下:?phpclasstimeAgo{static$timeagoObject;private$rustle;private$unit;priv...

php显示文章 几分钟前,几小时前,几天前发布类

文章发表时的UNIX时间戳,来转化为例如,几分钟前,几小时前,几天前....这样的提示,如微博,这看起来更加人性化,类代码如下:

  1. <?php 
  2.    class timeAgo 
  3.    {   
  4.       static $timeagoObject;    
  5.       private $rustle
  6.       private $unit
  7.        
  8.        private function __construct() 
  9.        { 
  10.            
  11.       }                 
  12.       private function __clone(){ } 
  13.       public static function getObject() 
  14.       { 
  15.           if(! (self::$timeagoObject instanceof self) ) 
  16.                  self::$timeagoObject = new timeAgo(); 
  17.                 
  18.           return self::$timeagoObject;   
  19.       } 
  20.       private function count_int($unix_C)   // main function 
  21.       { 
  22.           if(! (isset($unix_C) || is_numeric($unix_C)) ) 
  23.               return 'don't find parameter'; 
  24.                
  25.           $d = time()-$unix_C ;   // $d - unix time difference value  
  26.           $d_int =(int)floor($d/60) ; // minimum unit -- minutes   unix/60 
  27.           
  28.          $this->unit = 0 ;   // is minutes,hour or day? 
  29.            
  30.          if($d_int < 60){   // minutes   in one hour  3600 
  31.              $this->rustle = $d_int
  32.              $this->unit = 1;   
  33.              } 
  34.            else if($d_int < 720){  //hour    in one day  3600*12 
  35.                   $this->rustle = floor($d_int/60); 
  36.                 $this->unit = 2 ; 
  37.                   }    
  38.               else if($d_int < 7200){  //day  in ten days  3600*12*10 
  39.                        $this->rustle = floor($d_int/720); 
  40.                        $this->unit = 3 ; 
  41.                        } 
  42.                   else
  43.                        $this->rustle = $d ; 
  44.                       $this->unit = 4 ;    
  45.                       }  
  46.       } 
  47.      public function piece_str($C
  48.       { 
  49.          $this->count_int($C); 
  50.               
  51.            $u = '';  
  52.            switch$this->unit ) 
  53.            { 
  54.               case 1: 
  55.                    $u = 'minute'
  56.                    break
  57.               case 2: 
  58.                    $u = 'hour'
  59.                    break
  60.               case 3: 
  61.                    $u = 'day'
  62.                    break
  63.               case 4: 
  64.                    $u = ''
  65.                    break
  66.               case 0: 
  67.                    return 'sorry , get time is fail';      
  68.            } 
  69.            if($this->unit < 4) 
  70.            { 
  71.            if($this->rustle > 1) 
  72.                 return (string)$this->rustle.$u.'s ago'
  73.            else if($this->rustle == 1) 
  74.                   return (string)$this->rustle.$u.'ago'
  75.                else 
  76.                    return 'Just now';   
  77.            } 
  78.       } 
  79.       /*  example:   $ago = timeAgo::getObject(); 
  80.        *             echo $ago->piece_str($unix);     
  81.        *             // 2 days ago 
  82.       */ 
  83.   } 
  84. ?> 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论