从数据库获取哪个评论或者文章的发布时间,然后和当前时间比较就行了//为评论或者文章的发布时间
//$created
//如果created是2008-10-11 11:11:11这样格式的时间,需要转成unix时间戳
$unixCreated = strtotime($created);
$now = time();$diffTime = $now - unixCreated;
if($diffTime <= 60)
    $strTime = $diffTime . "秒前发布";
else if($diffTime > 60 && $diffTime <= 3600)
    $strTime = ceil($diffTime/60) . "分前发布";
else if(case $diffTime > 3600 && $diffTime <= 24* 3600)
    $strTime = ceil($diffTime/3600) . "小时前发布";
else
    $strTime = $created . "发布";

解决方案 »

  1.   

    function sgmdate($dateformat, $timestamp='', $format=0) {
    if(empty($timestamp)) {
    $timestamp = time();
    }
    $currenttime = time();
    $result = '';
    if($format) {
    $time = $currenttime - $timestamp;
    if($time > 3*24*3600) {//三天
    $result = gmdate($dateformat, $timestamp );
    }elseif($time > 24*3600){ //24小时
    $result = intval($time/24*3600).'天前';;
    } elseif ($time > 3600) {//24小时之内
    $result = intval($time/3600).'小时前';
    } elseif ($time > 60) { //1小时之内
    $result = intval($time/60).'分前';
    } elseif ($time > 0) {//1分之内
    $result = $time.'秒前';
    } else {
    $result = gmdate($dateformat, $timestamp );
    }
    } else {
    $result = gmdate($dateformat, $timestamp );
    }
    return $result;
    }sgmdate('y-m-d',你的时间,1)这个扩展性比较好。
      

  2.   

     
    我这样弄的 可是页面没有任何显示啊~~
    <?php    $unixCreated = strtotime($row_Recordset1['regtime']);
       $now = time();$diffTime = $now - $unixCreated;
    if($diffTime <= 60)
        $strTime = $diffTime . "秒前发布";
    else if($diffTime > 60 && $diffTime <= 3600)
        $strTime = ceil($diffTime/60) . "分前发布";
    else if($diffTime > 3600 && $diffTime <= 24* 3600)
        $strTime = ceil($diffTime/3600) . "小时前发布";
    else
        $strTime = $created . "发布";
    ?>
      

  3.   

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting '&' or T_VARIABLE in E:\xampp\a_Vhosts\port82\2.php on line 48出现了错误提示~~也就是function sgmdate($dateformat, $timestamp='', $format=0) {这行··我是这样改的function sgmdate('2008-11-23', $timestamp='09:20:00', 1) {,哪里错了嘛?
      

  4.   

    $unixCreated = strtotime($created);function output_time(unixCreated){    $now = time();    $diffTime = $now - unixCreated;
        if($diffTime <= 60)    
           $strTime = $diffTime . "秒前发布";
        else if($diffTime > 60 && $diffTime <= 3600)
           $strTime = ceil($diffTime/60) . "分前发布";
        else if($diffTime > 3600 && $diffTime <= 24* 3600)
           $strTime = ceil($diffTime/3600) . "小时前发布";
        else
           $strTime = $created . "发布";
        return $strTime ;
         
    } //应用,如果是unix时间戳$created=$row['created'];  //从数据库中取出的时间
    //如果已时间unix时间戳,则直接echo  output_time($created);//如果不是unix时间戳,但是date日期型$created = strtotime($created);
    echo  output_time($created);
      

  5.   


    //上面的有问题,看一下这个吧function output_time($unixCreated){    $now = time();    $diffTime = $now - $unixCreated;
        if($diffTime <= 60)    
           $strTime = $diffTime . "秒前发布";
        else if($diffTime > 60 && $diffTime <= 3600)
           $strTime = ceil($diffTime/60) . "分前发布";
        else if($diffTime > 3600 && $diffTime <= 24* 3600)
           $strTime = ceil($diffTime/3600) . "小时前发布";
        else
           $strTime = $created . "发布";
        return $strTime ;
         
    } //应用,
    $created=$row['created'];  //从数据库中取出的时间
    //如果已时间unix时间戳,则直接echo  output_time($created);//如果不是unix时间戳,但是date日期型$created = strtotime($created);
    echo  output_time($created);
      

  6.   

    建议用Javascript来实现这种效果
      

  7.   

    function sgmdate($dateformat, $timestamp='', $format=0)

      if(empty($timestamp)) { $timestamp = time(); } 
      $timestamp = strtotime($timestamp);
      $currenttime = time(); 
      $result = ''; 
      if($format) { 
      $time = $currenttime - $timestamp; 
      if($time > 3*24*3600) {//三天 
      $result = gmdate($dateformat, $timestamp ); 
      }elseif($time > 24*3600){ //24小时 
      $result = intval($time/24*3600).'天前';
       } elseif ($time > 3600) {//24小时之内 
        $result = intval($time/3600).'小时前'; 
        } elseif ($time > 60) { //1小时之内 
        $result = intval($time/60).'分前'; } 
        elseif ($time > 0) {//1分之内 
        $result = $time.'秒前'; } 
        else { $result = gmdate($dateformat, $timestamp ); } } 
        else { $result = gmdate($dateformat, $timestamp ); } 
        return $result; } 
    echo sgmdate('y-m-d', $timestamp='2008-11-23 09:20:00', 1);
      

  8.   

    你真的很热情的解答~~
    但是还是有问题哦~~
    就是秒都是-3213312秒咯··
    你再看看呢~~ 
    难道是我MYSQL插入时间弄错了~~
      

  9.   

    这种事,很简单 的,你一个个echo
    就知道错在哪了
    没有讨巧的办法