在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);
- }
-
- function stop(){
- $this->stopTime = microtime(true);
- }
-
- function spent(){
-
- 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;
-
-
-
-
-
-
- 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();
- }
-
-
-
-
-
- function spent()
- {
-
-
- return round(($this->StopTime - $this->StartTime), 4);
- }
- }
|