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+ajax实现无刷新分页的方法

    php+ajax实现无刷新分页的方法

    这篇文章主要介绍了php+ajax实现无刷新分页的方法,详细讲述了数据库的创建、Ajax文件的实现及PHP调用方法,需要的朋友可以参考下
    2014-11-11
  • php时间不正确的解决方法

    php时间不正确的解决方法

    呵呵,输出的时间是格林尼治标准时间!比北京时间相差8个时区! 加8就ok了
    2008-04-04
  • php 文本文件的读取效率

    php 文本文件的读取效率

    一直鼓捣着想把博客的首页存在文件里,结果存在文件里,博客更新时再重新将内容再次写入到这个文件。所以刚才测试了三种读取文本的常规方法
    2012-02-02
  • PHP处理JSON字符串key缺少双引号的解决方法

    PHP处理JSON字符串key缺少双引号的解决方法

    这篇文章主要介绍了PHP处理JSON字符串key缺少双引号的解决方法,是非常常见的一类错误处理情况,需要的朋友可以参考下
    2014-09-09
  • PHP生成图像验证码的方法小结(2种方法)

    PHP生成图像验证码的方法小结(2种方法)

    这篇文章主要介绍了PHP生成图像验证码的方法,结合实例形式分析了加法运算验证码与字符验证码2种方法供大家参考借鉴,需要的朋友可以参考下
    2016-07-07
  • php浅析反序列化结构

    php浅析反序列化结构

    序列化其实就是将数据转化成一种可逆的数据结构,自然,逆向的过程就叫做反序列化。php将数据序列化和反序列化会用到两个函数:serialize 将对象格式化成有序的字符串、unserialize 将字符串还原成原来的对象
    2022-07-07
  • PHP使用ob_start生成html页面的方法

    PHP使用ob_start生成html页面的方法

    这篇文章主要介绍了PHP使用ob_start生成html页面的方法,对ob_start的用法做了较为详细的分析,并以实例总结了ob_start生成html页面的实现方法,需要的朋友可以参考下
    2014-11-11
  • php基于base64解码图片与加密图片还原实例

    php基于base64解码图片与加密图片还原实例

    这篇文章主要介绍了php基于base64解码图片与加密图片还原的方法,以实例形式讲述了base64_decode函数的用法,需要的朋友可以参考下
    2014-11-11
  • php中如何判断一个网页请求是ajax请求还是普通请求

    php中如何判断一个网页请求是ajax请求还是普通请求

    以下是对php中如何判断一个网页请求是ajax请求还是普通请求的实现方法进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-08-08
  • php内存缓存实现方法

    php内存缓存实现方法

    这篇文章主要介绍了php内存缓存实现方法,分析了Memcached缓存的用法并比较了APC、EC、Zend加速器的用法,需要的朋友可以参考下
    2015-01-01

最新评论