• 技术文章 >php教程 >PHP源码

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

    2016-06-08 17:25:04原创698

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

    文章发表时的UNIX时间戳,来转化为例如 几分钟前,几小时前,几天前 这样的提示。如微博

    这看起来更加人性化


    1 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 ?>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp this rustle gt function
    上一篇:php fopen实现mysql错误日志记录 下一篇:php mysql 分页显示代码
    千万级数据并发解决方案

    相关文章推荐

    • Session Manager by Redis• http_build_query 比较好用的字符串函数• PHP 截取中文字符串(支持多种编码)• 高手整理的PHP+MySQL安全方案• php中$_SERVER['HTTP_USER_AGENT']判断是否为手机访问网站
    1/1

    PHP中文网