<?php
$r=date("h");
$d=date("s");
if ($r>"19")
{
if ($d<"25")
{echo "2aaa"; } 
if ($d>"38")
{echo "3aaa"; }
}
if ($r<="19")
{
if ($d<"12")
{echo "2aaa"; }
else if($d>"53")
{echo "3aaa"; }
}
else
{echo "1aaa"; } //就是这个条件满足了不会显示,其它都行,我大括号变了几次都不行
?>

解决方案 »

  1.   

    你可以让$r=date("H"); 24小时制  12小时制当然进不去啦
      

  2.   

    <?php
    echo $r=date("H");
    ?>我用这可以显示大于12的小时数啊。
      

  3.   

    $r=date("h");
    $d=date("s");
    if ($r>"19") { //因为 $r=date("h") 即 $r <= 12,所以永远不会进入该分支
      if ($d<"25"){ echo "2aaa"; }  
      if ($d>"38") { echo "3aaa"; }
    }
    if ($r<="19") { // 那么只能进入该分支了
      if ($d<"12") { echo "2aaa"; }
      else if($d>"53") { echo "3aaa"; }
    }else { echo "1aaa"; } // 自然也就进不了这里了
      

  4.   

    不知道你想要什么:date_default_timezone_set('Asia/Hong_Kong');
    $r = date("H");
    $r = 20;
    $d = date("s");
    if ($r > 19) {
    if ($d < 25) {
    echo "2aaa<br>";
    }
    if ($d > 38) {
    echo "3aaa<br>";
    }
    }
    if ($r <= "19") {
    if ($d < 12) {
    echo "2aaa<br>";
    } else
    if ($d > 53) {
    echo "3aaa<br>";
    }
    } else {
    echo "1aaa<br>";
    }echo "h-->>{$r}<br>";
    echo "s-->>{$d}<br>";结果:3aaa
    1aaa
    h-->>20
    s-->>40
      

  5.   

    大于的19小时还有秒数在25秒至38秒之间的例外啊,
    小于的19小时的也有秒数不在之间的例外啊。
    把小h换成大H也不行,把19点换成7点同样不行,任何时间都不能显示1aaa。
      

  6.   


    我想直接用虚拟空间的时间,你这时间固定成了20
    我就想小时数大于19点时,秒数小余25秒显示2aaa,秒数大于38秒时显示3aaa,秒数在之间显示1aaa
    小时数小于19点时,秒数小余12秒显示2aaa,秒数大于53秒时显示3aaa,秒数在之间显示1aaa
      

  7.   

    你似乎还没搞清楚你的结构。最后一个else 与 if ($r>"19") { }/ if ($r<="19") {}是同级的。要比较秒数请把它写入里面if else 结构中去。 
      

  8.   

    改成H是必然能进入你想要的分支的
    date_default_timezone_set('Asia/Hong_Kong');这是让你设置时区用的
    请你多修改一些不同的服务器系统时间再次确认你可以顺便输出$r的值
      

  9.   

    <?php
    $r=date("h");
    $d=date("s");
    if ($r>"19")
    {
    if ($d<"25")
    {echo "2aaa"; }
    if ($d>"38")
    {echo "3aaa"; }
    {echo "1aaa"; }
    }
    if ($r<="19")
    {
    if ($d<"12")
    {echo "2aaa"; }
    else if($d>"53")
    {echo "3aaa"; }
    else
    {echo "1aaa"; }
    }
    else
    {echo "1aaa"; }
    ?>我这样写了能正常显示,但好象多出最后的
    else
    {echo "1aaa"; }
    这个怎么消啊。
      

  10.   

    你的1aaa跟最后面的分支没有关系,你看看有多少地方输出这玩意。。听不见意见就没办法啦
      

  11.   

    $r = date("H");
    $d = date("s");
    if($r > "19"){
      if($d<"25"){
        echo "2aaa";
      }elseif($d>"38"){
        echo "3aaa";
      }else{
        echo "1aaa";
      }
    }else{
      if ($d<"12"){
        echo "2aaa";
      }else if($d>"53"){
        echo "3aaa";
      }else{
        echo "1aaa";
      }
    }
      

  12.   

    本帖最后由 xuzuning 于 2012-05-09 14:27:40 编辑
      

  13.   

    老大,else只和最近的一个if配对,就是说if ($r>"19")如果true的话,最后的else也会执行的。