VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • php计算多长时间前发的内容2个函数

下面整理了两个用来计算用户发内容的时间,这里以分钟,然后就是天数了,两个例子中,例子1只以计算昨天然后就是直接显示日期了,而后一个例子可以计算多少天前,并且文章最后对时区进行了介绍,告诉你在设置时间前一定要把php.ini时区设置好才行.

例子,多长时间前的时间函数,论坛,博客常用,代码如下:

  1. function timeFromNow($dateline) { 
  2.     if(emptyempty($dateline)) return false; 
  3.     $seconds = time() - $dateline
  4.     if ($seconds < 60){ 
  5.    return "1分钟前"
  6.     }elseif($seconds < 3600){ 
  7.    return floor($seconds/60)."分钟前"
  8.     }elseif($seconds  < 24*3600){ 
  9.    return floor($seconds/3600)."小时前"
  10.     }elseif($seconds < 48*3600){ 
  11.    return date("昨天 H:i"$dateline).""
  12.     }else//开源软件:phpfensi.com 
  13.    return date('Y-m-d'$dateline); 
  14.     } 
  15. echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15 
  16. echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前 

注:这里没有考虑到时区,后来在网上看到一段代码:

  1. function time_tran($the_time){ 
  2.    $now_time = date("Y-m-d H:i:s",time()+8*60*60); 
  3.    $now_time = strtotime($now_time); 
  4.    $show_time = strtotime($the_time); 
  5.    $dur = $now_time - $show_time
  6.    if($dur < 0){ 
  7.     return $the_time
  8.    }else
  9.     if($dur < 60){ 
  10. return $dur.'秒前'
  11.     }else
  12. if($dur < 3600){ 
  13.  return floor($dur/60).'分钟前'
  14. }else
  15.  if($dur < 86400){ 
  16.   return floor($dur/3600).'小时前'
  17.  }else
  18.   if($dur < 259200){//3天内 
  19.    return floor($dur/86400).'天前'
  20.   }else
  21.    return $the_time
  22.   } 
  23.  } 

最后补充时区:在 php.ini 中,默认是 date.timezone = UTC,修改为中国时区,修改为 date.timezone = PRC,如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8.

另外,也可以在 PHP 页面头中设置:

date_default_timezone_set('PRC');

测试:echo date('Y-m-d H:i:s');


出处:http://www.phpfensi.com/php/20150409/9122.html


相关教程