2010-01-02 85 views
0

我有一個腳本運行在''循環。我需要確定腳本運行了多長時間,並且它是否超過10秒纔會終止它。我寫的代碼返回奇怪的十進制值(一秒鐘可能是'5.342 ...',其他可能是'903.322 ...')。 有人能告訴我怎麼做到這一點?找出腳本在幾秒鐘內運行了多久?

$timer = microtime(false); 
while(/*...*/) 
{ 
    $currTime = microtime(false); 
    $timeDiff = $currTime - $timer; 
    $timeDiff *= 1000; 

    if ($timeDiff > 10) 
    { 
     //... 
    } 
} 

回答

2

您正在追蹤微秒。如果您只想查看秒數,請使用round()ceil()將它舍入爲

您可能還會考慮set_time_limit(),它控制腳本允許運行多長時間。

set_time_limit(10); // allow ten seconds for this script to finish 

您可以使用register_shutdown_function()處理任何清理是必要的,如果劇本沒有按時完成。

+0

不會被乘以1000做到了嗎? – 2010-01-02 18:44:06

+0

不,乘以1000不一定能確保一個非分數結果:'3.29381 * 1000 = 3293.81' – Sampson 2010-01-02 18:48:58

+0

整點是我不能讓這個事情觸發一個錯誤。所以我必須確保腳本在達到10秒後終止。 – 2010-01-02 18:49:43

1
$timeDiff /= 1000; 

1000微秒是第二,而不是其他方式