PHP获得中间时间间隔

时间:2012-05-24 19:43:46

标签: php date time

我开发了一个函数来在用户生成的时间范围内获得相等的时间间隔。

$start         = strtotime("12:00");    //start at...
$end           = strtotime("18:00");    //end at...
$timeframe     = $end - $start;         //time-frame    
$intervals     = 3;                     //number of intervals within time-frame
$interval_time = $timeframe/$intervals; //time of each interval

for($i = 0, $start; 
    $i < $intervals; 
    $i++, $start = strtotime("+$interval_time seconds", $start)) //increment time
    { 
        $new_time = date('H:i:s a', $start); 
        echo "$new_time \n"; 
    }

上面的代码输出

 12:00:00 pm 14:00:00 pm 16:00:00 pm

我可以使用哪些代码来划分每个间隔并获得中间值?例如,从上面的代码中获取

13:00:00 pm 15:00:00 pm 17:00:00 pm

请建议:)

1 个答案:

答案 0 :(得分:1)

将您的for循环替换为:

$half_interval = $interval_time / 2;
$mid = $start + $half_interval;
for ( $i = 1; $i < $intervals; $i ++) {
    echo date('H:i:s a', $mid) . " \n";
    $mid += $interval_time;
}
echo date('H:i:s a', $mid) . " \n";

不可否认,这是一种简单的方法。我确信可以改进,但留给读者作为练习! ; - )