首页 > 语言 > PHP > 正文

php计算多长时间前发的内容2个函数

2024-09-04 11:45:40
字体:大 中 小
来源:转载
供稿:网友

下面整理了两个用来计算用户发内容的时间,这里以分钟,然后就是天数了,两个例子中,例子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{ //开源软件:Vevb.com 
  13.    return date('Y-m-d', $dateline); 
  14.     } 
  15. } 
  16. echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15 
  17. 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.  } 
  24. } 

最后补充时区:在 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');

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表