活动结束时间: $gedate=$rs->gedate;
当前时间:$nowdate=date('Y-m-d H:i:s');
         $a=$nowdate - $gedate;
  if($a>0){
    echo "没有过期";
  }elseif($a<0){
   echo "已经过期";
  }else{
              echo "时间一样";
              }
无论你怎么改 ‘$gedate’ 都显示“时间一样”,各位高手,请帮个忙!谢谢!

解决方案 »

  1.   

    $rs->gedate; 什么格式?用时间戳对比,,不要转换成2012-04-16 ……
      

  2.   

    $gedate=$rs->gedate;
    这是什么?有数据么?看看逻辑。
      

  3.   

    date返回的是字符串吧,不要用Mktime转?
      

  4.   

    活动结束时间: $gedate=$rs->gedate;
    当前时间:$nowdate=date('Y-m-d H:i:s');
       echo $gedate;
      echo $nowdate;
    显示 2012-05-10 10:10:10   和  2012-04-16 15:33:30
      

  5.   

    用unix时间戳进行比较吧。
    把你的日期都用 strtotime($date)转化,再去比较。
      

  6.   

    $a = abs(strtotime($nowdate) - strtotime($gedate))
    if($a>0){
    echo "没有过期";
    }elseif($a<0){
    echo "已经过期";
    }else{
      echo "时间一样";
      }
    这样写还是一样的啊!现在怎么改?
      

  7.   

    首先根据你的判断,不要用绝对值(elseif($a<0))
    你在 $a = abs(strtotime($nowdate) - strtotime($gedate));之后输出 $a 
    然后把结束时间修改 小于当前时间,等于当前时间,大于当前时间 得到3个$a 你看看是什么结果。
      

  8.   

    你那个gedate是什么
    还有有必要用abs么。
      

  9.   

    $gedate是2012-05-10 10:10:10
    abc没有必要对吧
      

  10.   


    $a = strtotime('2012-05-10 10:10:10') - time();
    if($a > 0){
        echo '没过期';
    }else if($a < 0){
        echo '过期';
    }else{
        echo '一样';
    }
      

  11.   

    abs是取绝对值的,不管结果是正数还是负数,最后都变成正数了
    判断 < 0 还有什么意义
      

  12.   

    $time = '2012-04-18 11:49:30';
    $time1 = strtotime($time);
    $time2 = time();
    $a = $time1- $time2;
    if($a >0){
    echo 1;
    }elseif($a <0){
    echo 2;
    }我测试了 没问题啊 $a 有正 有负啊...
      

  13.   

    你这样写可以把'2012-05-10 10:10:10'改成我的$nowdate和time()改成$gedate吗?我改就返回错误啦!
      

  14.   

    $a = strtotime( $rs->gedate) - time();
    if($a>0){
    echo "没有过期";
    }elseif($a<0){
    echo "已经过期";
    }else{
      echo "时间一样";
      }
      

  15.   

    啥错误?
    你先把你的改成#11 的,$gedate 用个死值,$nowdate 用time() 你看看会不会出错误。
      

  16.   

    改成11楼没有错,我把他那个'2012-05-10 10:10:10'改成我的$nowdate和time()改成$gedate,就出错。还有这个是什么意思time(),我不懂啊!是不是不可以改time()成$gedate。
      

  17.   

    我的代码没有问题,你的也没有,只是我写错啦!你能解释一下time()是什么意思吗?是不是和date('Y-m-d H:i:s')一样啊!
      

  18.   


    http://cn2.php.net/manual/zh/function.time.php
    学会看手册
    date还有一个参数的,你如果只这样写
    date('Y-m-d H:i:s')
    它实际上等于这样
    date('Y-m-d H:i:s', time())
    而strtotime就是把date格式转为time格式