php中将时间差转换为字符串提示的实现代码

 更新时间:2011年08月08日 22:36:41   作者:  
通过传入数据库中存储的文章发表时的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中应该避免使用同名变量(拆分临时变量)

    PHP中应该避免使用同名变量(拆分临时变量)

    这篇文章主要介绍了PHP中应该避免使用同名变量(拆分临时变量),当一个临时变量被赋值多次时,那么将其拆分成多个,除非它是一个循环计数器,需要的朋友可以参考下
    2015-04-04
  • php中Ctype函数用法详解

    php中Ctype函数用法详解

    这篇文章主要介绍了php中Ctype函数用法,以实例形式较为详细的分析了Ctype函数的具体用法,对于进行字符串检测具有一定的实用价值,需要的朋友可以参考下
    2014-12-12
  • PHP中获取变量的变量名的一段代码的bug分析

    PHP中获取变量的变量名的一段代码的bug分析

    百度一下关于php获取变量名的办法都是下面这个函数。但是用了发现有点bug
    2011-07-07
  • php无限分类使用concat如何实现

    php无限分类使用concat如何实现

    这篇文章主要介绍了php无限分类使用concat是如何实现的,需要的朋友可以参考下
    2015-11-11
  • 【CLI】利用Curl下载文件实时进度条显示的实现

    【CLI】利用Curl下载文件实时进度条显示的实现

    这篇文章主要给大家介绍了关于【CLI】利用Curl下载文件实时进度条显示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • PHP常用特殊运算符号和函数总结(php新手入门必看)

    PHP常用特殊运算符号和函数总结(php新手入门必看)

    新手经常会有一些PHP特殊符号的问题,这里把常用的特殊符号整理一下。如果你全部都会用,那就当是温故知新吧
    2013-02-02
  • 50个PHP程序性能优化的方法

    50个PHP程序性能优化的方法

    程序的执行效率很重要,低的执行效率意味着你需要在服务器硬件上有更多的投入,但是,最终的结果会因为你的程序执行效率低,连硬件也无法解决。下面几十个提高程序执行效率的小知识就有必要了解了解了。
    2014-06-06
  • php页面函数设置超时限制的方法

    php页面函数设置超时限制的方法

    这篇文章主要介绍了php页面函数设置超时限制的方法,可通过函数控制超时限制,也可通过修改php配置文件实现修改超时限制,需要的朋友可以参考下
    2014-12-12
  • PHP获取服务器端信息的方法

    PHP获取服务器端信息的方法

    这篇文章主要介绍了PHP获取服务器端信息的方法,通过一个自定义函数实现对服务器端系统版本、PHP版本、Apache版本等信息的获取,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php更新mysql后获取改变行数的方法

    php更新mysql后获取改变行数的方法

    这篇文章主要介绍了php更新mysql后获取改变行数的方法,分析了获取更新mysql后改变行数的方法以及发生异常的解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12

最新评论