谢谢!
楼上的,“时间用UNIX时间戳记录”??,偶基础差,能说明白点么??

解决方案 »

  1.   

    /*
    * @return $imgstr
    * @param $aimdate 目標時間
    * @param $todate 時間條件
    * @param $imgstr 圖片代碼
    * @desc 檢查目標時間距現在時間是否滿足時間條件,若滿足,返回指定內容
    */
    function datechk($aimdate, $todate, $imgstr){
    $tmp=explode('-',$aimdate);
    if(date('Y-m-d')<=date('Y-m-d',mktime(0,0,0,$tmp[1],$tmp[2]+$todate,$tmp[0]))){
    return ' '.$imgstr;
    }
    }
    $aimdate='2004-11-03';
    $todate='7';
    $imgstr='<img src="test.gif">';
    echo datechk($aimdate, $todate, $imgstr);
      

  2.   

    $point = time()-3600*24; // 24小时前的时间戳记
    if ($timeline > $point) { //如果是24小时内新增的
        $topic .= "(new)";
    }// $timeline : 这个新闻的时间戳记
    // $topic : 新闻标题
      

  3.   

    弱弱的问问:
    $aimdate='2004-11-03';
    $todate='7';是给它赋值?
    如果$aimdate不是'2004-11-03' 呢?
      

  4.   

    谢谢!ps 小刀:// $timeline : 这个新闻的时间戳记 ——是新闻发布的时间??
      

  5.   

    <?
    function subday($regtime)
    {
    //计算时差,返回天数格式 20040502到今天的时差     $ptime=date("U");
         $y1=substr($regtime,0,4)+0;
         $m1=substr($regtime,4,2)+0;
         $d1=substr($regtime,6,2)+0;
         $reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
         //$reg_time1="0,0,0,02,01,2003";
         // echo $reg_time1;    //mktime 参数都要int
        $qtime=mktime($reg_time1);
         $qtime=mktime(0,0,0,$m1,$d1,$y1);
       //echo date("Ymd",mktime(0,0,0,$m1,$d1,$y1));
        $day_num=($qtime-$ptime)/(3600*24);
    //echo $day_num;
      $sub_day1=ceil($day_num);
      //echo $sub_day1;
      return $sub_day1;
    }//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";
    $regtime="20041104";//随便改个日期试试
    $days=subday($regtime)*(-1);
    echo "时间差为".$days."天<BR>";
    if($days<=2){
    echo "new";
    //换上图片也可以
    }
    ?>
      

  6.   

    谢谢!<?php
    function subday($regtime)
    {
    //计算时差,返回天数格式 20040502到今天的时差     $ptime=date("U");
         $y1=substr($regtime,0,4)+0;
         $m1=substr($regtime,4,2)+0;
         $d1=substr($regtime,6,2)+0;
         $reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
         //$reg_time1="0,0,0,02,01,2003";
        //mktime 参数都要int
        $qtime=mktime($reg_time1);
         $qtime=mktime(0,0,0,$m1,$d1,$y1);
        $day_num=($qtime-$ptime)/(3600*24);
      $sub_day1=ceil($day_num);
      return $sub_day1;
    }//$regtime=新闻发布时间;
    $regtime=$fday;
    $days=subday($regtime)*(-1);
    //echo "时间差为".$days."天<BR>";
    if($days<=2){
    echo "<img src = 'images/new.gif' border = '0'>";
    }
    ?>我把它用在<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> 
                                  <?=$ftitle?></a>的后面,第一个标题还正常显示,到第二个就报错:
    · 标题2 
    Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104咋回事呢??line 104是function subday($regtime)
      

  7.   

    加一个时间字段 
    如果时间是最近的就加一个
    new
      

  8.   

    设表中有字段time用于保存插入时间,则
    SELECT *,to_days(now())-to_days(time) as day FROM tbl_name在查询结果中将有day一列,表示插入后到今天的天数。
    你只需在输出时判断一下
    if($row['day'] <= 2)
      echo 'new';
      

  9.   

    function subday($regtime)
    {
    //计算时差,返回天数格式 20040502到今天的时差     $ptime=date("U");
         $y1=substr($regtime,0,4)+0;
         $m1=substr($regtime,4,2)+0;
         $d1=substr($regtime,6,2)+0;
         $reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
         //$reg_time1="0,0,0,02,01,2003";
        //mktime 参数都要int
        $qtime=mktime($reg_time1);
         $qtime=mktime(0,0,0,$m1,$d1,$y1);
        $day_num=($qtime-$ptime)/(3600*24);
      $sub_day1=ceil($day_num);
      return $sub_day1;
    }
    这段代码一个页面内只能包含一次,函数不能重复申明。
    见议你在调用这个函数的页面的尾部加上这段代码,不要放在include require的文件里
      

  10.   

    $twoday = time()-3600*48; // 两天前的时间戳记
    if ($newstime > $twoday) { //如果新闻的时间戳记大于两天前的
        $XXXX .= "(new)";
    }$twoday //表示两天前的时间戳记(就是一个整数)
    $newstime//表示新闻被加入时的时间戳记(也是一个整数)
    $XXXX .= "(new)";在新闻的标题后加上new
      

  11.   

    昨天停网5个小时,郁闷!偶的问题还是没解决,555555 <?php
    include ("cgi_php/inc/conn.php");
    include ("cgi_php/inc/var.php");
    $query="select id,title,day from $gxyy_news where  type='a' order by id desc limit 0,8";
    $result=@mysql_query($query) or die("query error");
    while($r=@mysql_fetch_row($result))
    {
    $fid=$r[0];
    $ftitle=$r[1];
    $fday=$r[2]; ?>
                              <tr> 
                                <td height="20" valign="middle"> ·<a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> 
                                  </a><a href="readnews.php?id=<?=$fid?>" target="_blank" class="two"> 
                                  <?=$ftitle?></a>
    <?php
    function subday($regtime)
    {
    //计算时差,返回天数格式 20040502到今天的时差     $ptime=date("U");
         $y1=substr($regtime,0,4)+0;
         $m1=substr($regtime,4,2)+0;
         $d1=substr($regtime,6,2)+0;
         $reg_time1="0,0,01,".$m1.",".$d1.",".$y1;
         //$reg_time1="0,0,0,02,01,2003";
        //mktime 参数都要int
        $qtime=mktime($reg_time1);
         $qtime=mktime(0,0,0,$m1,$d1,$y1);
        $day_num=($qtime-$ptime)/(3600*24);
      $sub_day1=ceil($day_num);
      return $sub_day1;
    }//$regtime=新闻发布时间; //格式要转换一下,如$regtime="20041105";
    $regtime=$fday;
    $days=subday($regtime)*(-1);
    //echo "时间差为".$days."天<BR>";
    if($days<=2){
    echo "<img src = 'images/new.gif' border = '0'>";
    }
    ?>
     </td>
                              </tr>
    <?php
    }
    mysql_free_result($result);
    //mysql_close($connid);
    ?>偶就是这样用那计时差函数的,报错了:
    Fatal error: Cannot redeclare subday() (previously declared in E:\ry\gxyy\index.php:104) in E:\ry\gxyy\index.php on line 104 要是用函数都报这个错,是咋回事呀??郁闷哦,函数也没放include require的文件里呀,55555555
      

  12.   

    xuzuning(唠叨) 的做法太好了
      

  13.   

    唠叨的简单,他的time是啥格式呀??如果是20041101这格式,遇到20041101-20041031,就出问题了??
    偶实在的笨哦
      

  14.   

    用mktime把现在的时间和发布的时间转换一下,然后相减,再除以86400(1天等于86400秒),如果结果大于2(即两天以前发的),则不是新的,否则为新的。
      

  15.   

    字段time 类型datetime
    很难想象不使用数据库提供的日期字段而非要自己用字符串或数值组装日期的原因