首先介绍一下此函数的用法:
定义和用法(php5)microtime() 函数返回当前 Unix 时间戳和微秒数。返回的字符串的格式:msec sec
语法
microtime(get_as_float)
参数 | 描述 |
---|---|
get_as_float | 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。 |
说明
本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。
如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
代码:
<?php
echo microtime();
echo '<br />';
echo microtime(TRUE);
?>
浏览器显示结果:
0.45316500 1221228252
1221228252.45
我们看到microtime(TRUE),只返回了2位的小数。如果要输出更多位的微秒,需要函数number_format().看最后附1这个函数的用法。
补充:在PHP4下microtime()的用法 ,由于没有参数TRUE的用法,所以如果要得到浮点数,需要配合array_num()函数和explode()函数。
比如:
在PHP里面,要想统计一个action或者一个函数或者某个过程的执行所消耗的时间往往都只有一个办法:在运算前记录下时间戳,在运算后记录下时间戳,然后相减,就能得到一个相对比较实际的时间。
基本代码如下(从phpmyadmin里复制而来,懒得打了。这段代码其实也就是phpMyadmin里SQL的执行时间的计算):
PHP代码
- <?php
- // garvin: Measure query time.
- // TODO-Item http://sourceforge.net/tracker/index.php?func=detail&aid=571934&group_id=23067&atid=377411
- $querytime_before = array_sum(explode(' ', microtime()));
- $result = @PMA_DBI_try_query($full_sql_query, null, PMA_DBI_QUERY_STORE);
- $querytime_after = array_sum(explode(' ', microtime()));
- $GLOBALS['querytime'] = $querytime_after - $querytime_before;
- ?>
看文章最后附2,array_sum()函数的用法。 其中 array_sum(explode(' ', microtime())); 是PHP4时代的写法,到PHP5之后,microtime函数多了一个bool值的参数,加上这个参数后可以直接得到 array_sum(explode(' ', microtime())); 相等的值,即:microtime(true)。
附1:number_format()的用法
number_format
格式化数字字串。
语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
传回值: 字串
函式种类: 数学运算
内容说明 |
本函式用来将浮点参数 number 格式化。若没加参数 decimals 则传回的字串只要整数部份,加了此参数才依参数指定的小数点位数传回。参数 dec_point 表示小数点的表示方式方法,内定值是 ".",若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号,内定值是 ","。本函式最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字串;也可以有二个或者四个参数,但不能用三个参数。值得注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。
使用范例 |
<?
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."/n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."/n"; // 850 017.902
?>
附2 array_num的用法array_sum
(PHP 4 >= 4.0.4)
array_sum -- 计算数组中所有值的和
说明
mixed array_sum ( array array)
array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。
例子 1. array_sum() 例子
$a = array(2, 4, 6, 8); echo "sum(a) = ".array_sum($a)."/n"; $b = array("a"=>1.2,"b"=>2.3,"c"=>3.4); echo "sum(b) = ".array_sum($b)."/n";
以上程序输出为: sum(a) = 20
sum(b) = 6.9