PHP每隔一小时打印一次?

时间:2012-02-02 20:39:13

标签: php date charts google-visualization

是否有比这更简单/更好的方式获得每小时

if(date("H")=='00'){$chart_updates = '|02|04|06|08|10|12|14|16|18|20|22|00';}
if(date("H")=='01'){$chart_updates = '|03|05|07|09|11|13|15|17|19|19|23|01';}
if(date("H")=='02'){$chart_updates = '|04|06|08|10|12|14|16|18|20|21|00|02';}
if(date("H")=='03'){$chart_updates = '|05|07|09|11|13|15|17|19|21|23|01|03';}
if(date("H")=='04'){$chart_updates = '|06|08|10|12|14|16|18|20|22|00|02|04';}
if(date("H")=='05'){$chart_updates = '|07|09|11|13|15|17|19|21|23|01|03|05';}
if(date("H")=='06'){$chart_updates = '|08|10|12|14|16|18|20|22|00|02|04|06';}
if(date("H")=='07'){$chart_updates = '|09|11|13|15|17|19|21|23|01|03|05|07';}
if(date("H")=='08'){$chart_updates = '|10|12|14|16|18|20|22|00|02|04|06|08';}
if(date("H")=='09'){$chart_updates = '|11|13|15|17|19|21|23|01|03|05|07|09';}
if(date("H")=='10'){$chart_updates = '|12|14|16|18|20|22|00|02|04|06|08|10';}
if(date("H")=='11'){$chart_updates = '|13|15|17|19|21|23|01|03|05|07|09|11';}
if(date("H")=='12'){$chart_updates = '|14|16|18|20|22|00|02|04|06|08|10|12';}
if(date("H")=='13'){$chart_updates = '|15|07|19|21|23|01|03|05|07|09|11|13';}
if(date("H")=='14'){$chart_updates = '|16|08|20|22|00|02|04|06|08|10|12|14';}
if(date("H")=='15'){$chart_updates = '|17|09|21|23|01|03|05|07|09|11|13|15';}
if(date("H")=='16'){$chart_updates = '|18|20|22|00|02|04|06|08|10|12|16|16';}
if(date("H")=='17'){$chart_updates = '|19|21|23|01|03|05|07|09|11|13|15|17';}
if(date("H")=='18'){$chart_updates = '|20|22|00|02|04|06|08|10|12|14|16|18';}
if(date("H")=='19'){$chart_updates = '|21|23|01|03|05|07|09|11|13|15|17|19';}
if(date("H")=='20'){$chart_updates = '|22|00|02|04|06|08|10|12|14|16|18|20';}
if(date("H")=='21'){$chart_updates = '|23|01|03|05|07|09|11|13|15|17|19|21';}
if(date("H")=='22'){$chart_updates = '|00|02|04|06|08|10|12|14|16|18|20|22';}
if(date("H")=='23'){$chart_updates = '|01|03|05|07|09|11|13|15|17|19|21|23';}

我需要这个谷歌图表,并想检查这种方式是否愚蠢。

5 个答案:

答案 0 :(得分:4)

1)取当前时间

2)mod2(只有两组不同的数字,奇数和偶数)

3)构建小时数组

4)按值排序数组

5)原始小时所在的分裂阵列,并重新组合。

答案 1 :(得分:1)

一种方法是使用键创建一个数组:

$theHour['00'] = '|02|04|06|08|10|12|14|16|18|20|22|00';

然后你可以这样称呼它:

$chart_updates = $theHour[date("H")];

也可能有一种更好的方法来生成它,但是因为你已经输入了它,它就在那里......如果你想做出改变,那就太糟糕了。

答案 2 :(得分:1)

$h = date("H");
$line = '';
for($i=0; $i<=24; $i++)
{
    if($i % 2 == $h % 2)
        $line .= '|' . ($i < 10 ? '0'.$i : $i);
}

答案 3 :(得分:0)

好的代码:)

在php中实际上有更简单的方法:

$chars = array();
$start = date("H")+2;
for( $i = 0; $i < 12; $i++){
    $chars[] = str_pad( ($start+2*$i)%24, 2, '0', STR_PAD_LEFT);
}

$chart_updates = '|' . implode( '|', $chars);

答案 4 :(得分:0)

    function helper_add($h,$plus=0){
        if($h+$plus > 23){
            return $h+$plus-24;
        }
        return $h+$plus;
    }
    function helper_10($in){
        return $in < 10 ? '0'.$in : $in;
    }
    function getchartupdates(){
        $now = date('G');
        for($i=($now%2==0?0:1); $i<=24 ;$i+=2)
            $res[] = helper_10(helper_add($now,$i));
        return '|'.implode('|',$res);
    }

使用this来测试它!