2012-05-24 36 views
1

我開發了一個函數來獲取用戶生成的時間範圍內的相等時間間隔。上述PHP獲得時間間隔的中間值

$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

嘗試'$ start + = $ interval_time/2;'在第6行。順便說一句這是作業嗎?因爲在我看來,如果你能寫出上面的代碼,你也可以修復這個... –

+0

@The指甲,謝謝!代碼似乎工作。作業是什麼意思?我只是增加運營商的新手。 – CyberJunkie

+0

@Cyber​​Junkie如果輸入是「開始12:00結束15:00」,你期望什麼? – meze

回答

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

誠然,一個簡單的方法。我相信改進是可能的,但是讓他們作爲讀者的練習! ;-)

+0

謝謝!你的代碼沒有任何錯誤:) – CyberJunkie