在PHP中,大多數的時間格式都是以UNIX時間戳表示的,而UNIX時間戳是以s(秒)為最小的計量時間的單位,這對某些應用程序來說不夠精確,所以可以調用microtime()返回當前UNIX時間戳和微妙數,該函數的原型如下:
mixed microtime([bool get_as_float]); //返回當前UNIX時間戳和微妙數
可以為該函數提供一個可選的布爾型參數,如果在調用時不提供這個參數,本函數以“msec sec”的格式返回一個字符串,其中sec是自UNIX紀元到現在的秒數,而msec是微妙部分,字符串的兩部分都是以秒為單位返回的.
如果給出了get_as_float參數并且其值等價于TRUE,microtime()將返回一個浮點數,在小數點前面還是以時間戳格式表示,而小數點后面則表示微妙的值,但要注意參數get_as_float是在PHP5.0版本中新加的,所以在PHP5以前的版本中,不能直接使用該參數直接請求一個浮點數,在下面的例子中通過兩次調用microtime()函數,計算運行PHP腳本所需要的時間,代碼如下所示:
- <?php
- //生命一個計算腳本運行時間的類
- class Timer{
- private $startTime = 0; //保存腳本開始執行時的時間(以微秒的形式保存)
- private $stopTime = 0; //保存腳本結束執行時的時間(以微秒的形式保存)
- //在腳本開始處調用獲取腳本開始時間的微秒值
- function start(){
- $this->startTime = microtime(true); //將獲取的時間賦值給成員屬性$startTime
- }
- //腳本結束處嗲用腳本結束的時間微秒值
- function stop(){
- $this->stopTime = microtime(true); //將獲取的時間賦給成員屬性$stopTime
- }
- //返回同一腳本中兩次獲取時間的差值
- function spent(){
- //計算后4舍5入保留4位返回
- return round(($this->stopTime-$this->startTime),4);
- }
- }
- $timer= new Timer();
- $timer->start(); //在腳本文件開始執行時調用這個方法
- usleep(1000); //腳本的主題內容,這里可以休眠一毫秒為例
- $timer->stop(); //在腳本文件結束處調用這個方法
- echo "執行該腳本用時<b>".$timer->spent()."</b>";
- ?>
在以上腳本中,聲明一個用于計算腳本執行時間的類Timer,需要在腳本執行開始的位置調用該類中的start()方法,獲取腳本開始執行時的時間,并在腳本執行結束的位置調用該類中的stop()方法,獲取腳本運行結束時的時間,再通過訪問該類中的spent()方法,就可以獲取運行腳本所需的時間.
后面我又打到一個類,下面我們一起來看看吧,代碼如下:
- **
- * 獲取某段程序運行所用的時間
- *
- */
- class runtime
- {
- var $StartTime = 0;
- var $StopTime = 0;
- /**
- * 獲取系統時間
- *
- * @return unknown
- */
- function get_microtime()
- {
- list($usec, $sec) = explode(‘ ’, microtime()); //取系統時間 前半部分是時間戳,后半部分是微妙部分
- return ((float)$usec + (float)$sec);
- }
- /**
- * 取程序開始時候的系統時間
- *
- */
- function start()
- {
- $this->StartTime = $this->get_microtime(); //程序開始的時候用這個方法取一次時間
- }
- /**
- * 取程序結束時候的系統時間
- *
- */
- function stop()
- {
- $this->StopTime = $this->get_microtime(); //程序結束的時候用這個方法取一次時間
- }
- /**
- * 計算出程序運行所用時間
- *
- * @return unknown
- */
- function spent()
- {
- // return round(($this->StopTime - $this->StartTime) * 1000, 1);
- //開源代碼Vevb.com
- return round(($this->StopTime - $this->StartTime), 4); //用結束時候的時間減去開始時候的時間,就是程序運行的時間了
- }
- }
新聞熱點
疑難解答