和当前时间相比
1, n<60分钟;  显示xx分钟之前  2, 1小时<= n < 24小时 ; 显示xx小时前3,30 <= n  显示  年-月-日  时:分:秒

解决方案 »

  1.   


    function sgmdate($timestamp='') {
    $timenow = time();
    $result = '';
    $time = $timenow - $timestamp;
    if($time > 24*3600) {
    $result = gmdate('Y年-M月-d日 H:i:s', $timestamp );
    } elseif ($time > 3600) {
    $result = intval($time/3600).'小时前';
    } elseif ($time > 60) {
    $result = intval($time/60).'分钟之前';
    } elseif ($time > 0) {
    $result = $time.'秒钟之前';
    } else {
    $result = gmdate('Y年-M月-d日 H:i:s', $timenow );
    }
    return $result;
    }
      

  2.   

    <?
    class datetimes {

    function sgmdate($timestamp='') {
        $timenow = time();
        $result = '';
        $time = $timenow - $timestamp;
        if($time > 24*3600) {
            $result = gmdate('Y年-M月-d日 H:i:s', $timestamp );
        } elseif ($time > 3600) {
            $result = intval($time/3600).'小时前';
        } elseif ($time > 60) {
            $result = intval($time/60).'分钟之前';
        } elseif ($time > 0) {
            $result = $time.'秒钟之前';
        } else {
            $result = gmdate('Y年-M月-d日 H:i:s', $timenow );
        }
        return $result;
    }
    }
    $tesd = new datetimes();
    //$st = $tesd->sgmdate( date('Y-m-d H:i:s'));
    echo $result;
    ?>  
    这样调用吗
      

  3.   


    根据参数变量名,应该是:
    function sgmdate($timestamp='') {
        $timenow = time();
        $result = '';
        $time = $timenow - $timestamp;
        if($time > 24*3600) {
            $result = gmdate('Y年-M月-d日 H:i:s', $timestamp );
        } elseif ($time > 3600) {
            $result = intval($time/3600).'小时前';
        } elseif ($time > 60) {
            $result = intval($time/60).'分钟之前';
        } elseif ($time > 0) {
            $result = $time.'秒钟之前';
        } else {
            $result = gmdate('Y年-M月-d日 H:i:s', $timenow );
        }
        return $result;
    } $time=time();//$time为你的时间截
    echo sgmdate($time);