我在category表里加了两个date字段fromdete和todate,我想判断当前时间大于fromdete和小于todate时才能发表文章,否则提示未开始或已结束。我用的是PHPCMS2008。我自己也试着改了改,我的如下找到manage.php,里面有一个add的,在下面我这样写到
                $monDay = date("Y-m-d",TIME);
                $fromdate = $db->get_one("SELECT fromdate FROM ".DB_PRE."category WHERE catid=$catid");
                $todate = $db->get_one("SELECT todate FROM ".DB_PRE."category WHERE catid=$catid");
                if($monDay < $fromdete) {showmessage("对不起,本次比赛活动投稿即将开始,敬请关注。");}
                elseif($monDay > $todate) {showmessage("对不起,本次比赛活动投稿已结束,感谢你的参与!");}
但这样是不行的,当前时间小于和大于投稿时间时都不提示,就能发表文章;我这是本地所以能改电脑时间;如果把
($monDay < $fromdete)改成($monDay > $fromdete)后,当前时间小于和大于投稿时间时都提示;我这样写:
$fromdete = "2009-04-11";这样判断就没有问题,我想是应该读取出来的时间无法比较或是读取方式错误在这里还请高手指点,先谢谢各位高人了!!!

解决方案 »

  1.   

    PHP 时间比较用  UNIX 时间戳 最方便了呀
    你取出的时间是什么格式?
    你先用个函数转化时间格 统一UNIX时间戳 就能简单的比较大小了
      

  2.   


    $monDay ='2004/01/02';
    $todate ='2004/01/01';
    if(strtotime($monDay)>strtotime($todate)){
       echo('结束了');
    }
      

  3.   

    建议楼主存储unix时间戳,到时候也不用mktime,直接比较时间戳的大小即可!<?
    $fromdete = "2009-04-20";
    $a=explode('-',$fromdete);$c=mktime(0,0,0,$a[1],$a[2],$a[0]);
    $b=time();
    if($b<$c)
    {
    echo '对不起,本次比赛活动投稿即将开始,敬请关注';
    }
    ?>