http://cn.php.net/manual/en/datetime.diff.php

解决方案 »

  1.   

    自己写出来了,大家进来接分吧,需要先转化成unixstamp
    function fomatmytime($time){
    $now =  gmmktime();
    $diff = $now - $time;
    $dayDiff = floor($diff / 86400);         if(is_nan($dayDiff) || $dayDiff < 0) { 
                return ''; 
            } 
                     
            if($dayDiff == 0) { 
                if($diff < 60) { 
                    return 'Just now'; 
                } elseif($diff < 120) { 
                    return '1 minute ago'; 
                } elseif($diff < 3600) { 
                    return floor($diff/60) . ' minutes ago'; 
                } elseif($diff < 7200) { 
                    return '1 hour ago'; 
                } elseif($diff < 86400) { 
                    return floor($diff/3600) . ' hours ago'; 
                } 
            } elseif($dayDiff == 1) { 
                return 'Yesterday'; 
            } elseif($dayDiff < 7) { 
                return $dayDiff . ' days ago'; 
            } elseif($dayDiff == 7) { 
                return '1 week ago'; 
            } elseif($dayDiff < (7*6)) { // Modifications Start Here 
                // 6 weeks at most 
                return ceil($dayDiff/7) . ' weeks ago'; 
            } elseif($dayDiff < 365) { 
                return ceil($dayDiff/(365/12)) . ' months ago'; 
            } else { 
                $years = round($dayDiff/365); 
                return $years . ' year' . ($years != 1 ? 's' : '') . ' ago'; 
            } 
        } 
      

  2.   


    转换没有那么难吧,一个函数就可以了:
    strtotime就搞定了。
      

  3.   

    strtotime 
    不挺好用的,楼主多虑了
      

  4.   

    首先将现在的时间转化为unix时间戳,在和现在的时间戳做比较,从比较的结果中,来控制时间的显示形式
      

  5.   

    接分了!不过这个函数最好用JavaScript显示比较好,你把php时间差传递给用户浏览器然后使用JavaScript处理<script>
    var a=1238380049;//传递的unix时间戳
    var d=new Date(a*1000); 
    var c=new Date();
    var remainTime =c-d; 
    var hour=Math.floor(remainTime/1000/3600); 
    var remainSecond = Math.floor(remainTime/1000/3600/24); 
    var day=remainSecond;//几天前
    document.write(hour+'小时前');
    document.write(day+'天前');
    </script>