php中將時(shí)間差轉(zhuǎn)換為字符串提示的實(shí)現(xiàn)代碼
更新時(shí)間:2011年08月08日 22:36:41 作者:
通過傳入數(shù)據(jù)庫中存儲(chǔ)的文章發(fā)表時(shí)的UNIX時(shí)間戳,來轉(zhuǎn)化為例如 幾分鐘前,幾小時(shí)前,幾天前 這樣的提示。
如微博
這看起來更加人性化,好吧,上代碼
<?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
*/
}
?>
這看起來更加人性化,好吧,上代碼
復(fù)制代碼 代碼如下:
<?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和MySql中計(jì)算時(shí)間差的方法詳解
- php計(jì)算兩個(gè)日期時(shí)間差(返回年、月、日)
- 在php和MySql中計(jì)算時(shí)間差的方法
- php中計(jì)算時(shí)間差的幾種方法
- PHP輸出時(shí)間差函數(shù)代碼
- php將時(shí)間差轉(zhuǎn)換為字符串提示
- php 8小時(shí)時(shí)間差的解決方法小結(jié)
- php獲取給定日期相差天數(shù)的方法分析
- php判斷兩個(gè)日期之間相差多少個(gè)月份的方法
- php計(jì)算兩個(gè)日期相差天數(shù)的方法
- PHP簡單計(jì)算兩個(gè)時(shí)間差的方法示例
相關(guān)文章
深入理解require與require_once與include以及include_once的區(qū)別
本篇文章是對(duì)require與require_once與include以及include_once的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php 攻擊方法之談php+mysql注射語句構(gòu)造
由于PHP和MYSQL本身得原因,PHP+MYSQL的注射要比asp困難,尤其是注射時(shí)語句的構(gòu)造方面更是個(gè)難點(diǎn),本文主要是借對(duì)Okphp BBS v1.3一些文件得簡單分析,來談?wù)刾hp+mysql注射語句構(gòu)造方式,希望本文對(duì)你有點(diǎn)幫助。2009-10-10PHP實(shí)現(xiàn)十進(jìn)制數(shù)字與二十六進(jìn)制字母串相互轉(zhuǎn)換操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)十進(jìn)制數(shù)字與二十六進(jìn)制字母串相互轉(zhuǎn)換操作,涉及php字符串遍歷、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2018-08-08PHP實(shí)現(xiàn)二維數(shù)組按指定的鍵名排序的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)二維數(shù)組按指定的鍵名排序的方法,這里以數(shù)組記錄三個(gè)人信息中的年齡age字段值進(jìn)行排序?yàn)槔?分析了php二維數(shù)組排序的操作技巧,需要的朋友可以參考下2017-08-08php通過數(shù)組實(shí)現(xiàn)多條件查詢實(shí)現(xiàn)方法(字符串分割)
這篇文章主要介紹了php通過數(shù)組實(shí)現(xiàn)多條件查詢實(shí)現(xiàn)方法(字符串分割),需要的朋友可以參考下2014-05-05