1

ユーザーが生成した時間枠内で等時間間隔を取得する関数を開発しました。

$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

ご教授ください :)

4

1 に答える 1

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";

確かに単純なアプローチ。改善は可能だと思いますが、読者の練習問題として残してください。;-)

于 2012-05-24T20:59:48.340 に答える