php显示文章 几分钟前,几小时前,几天前发布类
文章发表时的UNIX时间戳,来转化为例如,几分钟前,几小时前,几天前....这样的提示,如微博,这看起来更加人性化,类代码如下:
<?php class timeAgo { static $timeagoObject ; private $rustle ; private $unit ; private function __construct() { } private function __clone(){ } public static function getObject() { if (! (self:: $timeagoObject instanceof self) ) self:: $timeagoObject = new timeAgo(); return self:: $timeagoObject ; } private function count_int( $unix_C ) // main function { if (! (isset( $unix_C ) || is_numeric ( $unix_C )) ) return 'don' t find parameter'; $d = time()- $unix_C ; // $d - unix time difference value $d_int =(int) floor ( $d /60) ; // minimum unit -- minutes unix/60 $this ->unit = 0 ; // is minutes,hour or day? if ( $d_int < 60){ // minutes in one hour 3600 $this ->rustle = $d_int ; $this ->unit = 1; } else if ( $d_int < 720){ //hour in one day 3600*12 $this ->rustle = floor ( $d_int /60); $this ->unit = 2 ; } else if ( $d_int < 7200){ //day in ten days 3600*12*10 $this ->rustle = floor ( $d_int /720); $this ->unit = 3 ; } else { $this ->rustle = $d ; $this ->unit = 4 ; } } public function piece_str( $C ) { $this ->count_int( $C ); $u = '' ; switch ( $this ->unit ) { case 1: $u = 'minute' ; break ; case 2: $u = 'hour' ; break ; case 3: $u = 'day' ; break ; case 4: $u = '' ; break ; case 0: return 'sorry , get time is fail' ; } if ( $this ->unit < 4) { if ( $this ->rustle > 1) return (string) $this ->rustle. $u . 's ago' ; else if ( $this ->rustle == 1) return (string) $this ->rustle. $u . 'ago' ; else return 'Just now' ; } } /* example: $ago = timeAgo::getObject(); * echo $ago->piece_str($unix); * // 2 days ago */ } ?>查看更多关于php显示文章 几分钟前,几小时前,几天前发布类的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did29183