下面整理了兩個用來計算用戶發內容的時間,這里以分鐘,然后就是天數了,兩個例子中,例子1只以計算昨天然后就是直接顯示日期了,而后一個例子可以計算多少天前,并且文章最后對時區進行了介紹,告訴你在設置時間前一定要把php.ini時區設置好才行.
例子,多長時間前的時間函數,論壇,博客常用,代碼如下:
- function timeFromNow($dateline) {
- if(emptyempty($dateline)) return false;
- $seconds = time() - $dateline;
- if ($seconds < 60){
- return "1分鐘前";
- }elseif($seconds < 3600){
- return floor($seconds/60)."分鐘前";
- }elseif($seconds < 24*3600){
- return floor($seconds/3600)."小時前";
- }elseif($seconds < 48*3600){
- return date("昨天 H:i", $dateline)."";
- }else{ //開源軟件:Vevb.com
- return date('Y-m-d', $dateline);
- }
- }
- echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15
- echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前
注:這里沒有考慮到時區,后來在網上看到一段代碼:
- function time_tran($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;
- }
- }
- }
最后補充時區:在 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');
新聞熱點
疑難解答