PHP 把时间转换为友好时间段,如刚刚、几分钟前、几小时前、几天前的简单函数代码。通过把时间格式转换为时间戳,并把当前的时间戳减去之前时间的时间戳,相减后的时间戳除以相对应的秒数得到刚刚、几分钟前、几小时前、几天前的展示,需要的朋友可以参考下:
//时间格式化(时间戳)function uc_time_ago($ptime) {
date_default_timezone_set('PRC');
//$ptime = strtotime($ptime);$etime = time() - $ptime;
switch ($etime){
case $etime <= 60:
$msg = '刚刚';
break;
case $etime > 60 && $etime <= 60 * 60:
$msg = floor($etime / 60) . ' 分钟前';
break;
case $etime > 60 * 60 && $etime <= 24 * 60 * 60:
$msg = date('Ymd',$ptime)==date('Ymd',time()) ? '今天 '.date('H:i',$ptime) : '昨天 '.date('H:i',$ptime);
break;
case $etime > 24 * 60 * 60 && $etime <= 2 * 24 * 60 * 60:
$msg = date('Ymd',$ptime)+1==date('Ymd',time()) ? '昨天 '.date('H:i',$ptime) : '前天 '.date('H:i',$ptime);
break;
case $etime > 2 * 24 * 60 * 60 && $etime <= 12 * 30 * 24 * 60 * 60:
$msg = date('Y',$ptime)==date('Y',time()) ? date('m-d H:i',$ptime) : date('Y-m-d H:i',$ptime);
break;
default: $msg = date('Y-m-d H:i',$ptime);
}return $msg;
}
<?phpheader("Content-type: text/html; charset=utf8");
date_default_timezone_set("Asia/Shanghai"); //设置时区
function time_tran($the_time) {
$now_time = date("Y-m-d H:i:s", time());
//echo $now_time;$now_time = strtotime($now_time);
$show_time = strtotime($the_time);
$dur = $now_time - $show_time;
if ($dur < 0) {
return $the_time;
} else {
if ($dur < 60) {
return $dur . '秒前';
} else {
if ($dur < 3600) {
return floor($dur / 60) . '分钟前';
} else {
if ($dur < 86400) {
return floor($dur / 3600) . '小时前';
} else {
if ($dur < 259200) {//3天内
return floor($dur / 86400) . '天前';
} else {
return $the_time;
} } } } }}echo time_tran("2014-7-8 19:22:01");
?><h2>实例2:</h2>
<pre lang="PHP" line="1" escaped="true" ><?phpfunction time_tranx($the_time){
$now_time = date("Y-m-d H:i:s",time()+8*60*60);
$now_time = strtotime($now_time);
$show_time = strtotime($the_time);
$dur = $now_time - $show_time;
if($dur < 0){
return $the_time;
}else{
if($dur < 60){
return $dur.'秒前';
}else{
if($dur < 3600){
return floor($dur/60).'分钟前';
}else{
if($dur < 86400){
return floor($dur/3600).'小时前';
}else{
if($dur < 259200){ //3天内
return floor($dur/86400).'天前';
}else{
return $the_time;
} } } } }}echo time_tranx("2014-7-8 19:22:01");
?><?phpfunction format_date($time){
$t=time()-$time;
<span style="white-space:pre"> </span>//echo time();
$f=array(
'31536000'=>'年',
'2592000'=>'个月',
'604800'=>'星期',
'86400'=>'天',
'3600'=>'小时',
'60'=>'分钟',
'1'=>'秒'
);
foreach ($f as $k=>$v) {
if (0 !=$c=floor($t/(int)$k)) {
return $c.$v.'前';
} }}echo format_date("1404600000");
?><?phpfunction formatTime($date) {
$str = '';
$timer = strtotime($date);
$diff = $_SERVER['REQUEST_TIME'] - $timer;
$day = floor($diff / 86400);
$free = $diff % 86400;
if($day > 0) {
return $day."天前";
}else{
if($free>0){
$hour = floor($free / 3600);
$free = $free % 3600;
if($hour>0){
return $hour."小时前";
}else{
if($free>0){
$min = floor($free / 60);
$free = $free % 60;
if($min>0){
return $min."分钟前";
}else{
if($free>0){
return $free."秒前";
}else{
return '刚刚';
} }}else{
return '刚刚';
} }}else{
return '刚刚';
} }}echo formatTime("2014-7-8 19:22:01");
?><?php/* * author: china_skag * time: 2014-07-08 * 发博时间计算(年,月,日,时,分,秒) * $createtime 可以是当前时间 * $gettime 你要传进来的时间 */class Mygettime{
function __construct($createtime,$gettime) {
$this->createtime = $createtime;
$this->gettime = $gettime;
}function getSeconds()
{return $this->createtime-$this->gettime;
}function getMinutes()
{return ($this->createtime-$this->gettime)/(60);
}function getHours()
{return ($this->createtime-$this->gettime)/(60*60);
}function getDay()
{return ($this->createtime-$this->gettime)/(60*60*24);
}function getMonth()
{return ($this->createtime-$this->gettime)/(60*60*24*30);
}function getYear()
{return ($this->createtime-$this->gettime)/(60*60*24*30*12);
}function index()
{if($this->getYear() > 1)
{if($this->getYear() > 2)
{return date("Y-m-d",$this->gettime);
exit();
}return intval($this->getYear())." 年前";
exit();
}if($this->getMonth() > 1)
{return intval($this->getMonth())." 月前";
exit();
}if($this->getDay() > 1)
{return intval($this->getDay())." 天前";
exit();
}if($this->getHours() > 1)
{return intval($this->getHours())." 小时前";
exit();
}if($this->getMinutes() > 1)
{return intval($this->getMinutes())." 分钟前";
exit();
}if($this->getSeconds() > 1)
{return intval($this->getSeconds()-1)." 秒前";
exit();
} } }//类的使用实例/* * * 调用类输出方式 * * $a = new Mygettime(time(),strtotime('-25 month')); * echo iconv('utf-8', 'gb2312', $a->index())?iconv('utf-8', 'gb2312', $a->index()):iconv('utf-8', 'gb2312', '当前'); * */专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!
