首页 > 语言 > PHP > 正文

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

2024-09-04 11:45:33
字体:
来源:转载
供稿:网友

文章发表时的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. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表