曲径通幽论坛

标题: microtime() -- 返回当前 Unix 时间戳和微秒数 [打印本页]

作者: beyes    时间: 2011-8-30 17:50
标题: microtime() -- 返回当前 Unix 时间戳和微秒数
microtime() -- 返回当前 Unix 时间戳和微秒数

语法格式:
[PHP] 纯文本查看 复制代码
mixed microtime ([ bool $get_as_float = false ] )


microtime() 函数可以带参数,也可以不带参数。当不带参数时,返回  "msec sec" 格式时间,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒时间;因为函数先获得的是秒,然后去获取微秒,在两次获取的动作的时间间隔就是 msec 。

microtime() 也可以带参数,当参数为 false 时,它返回的是一个浮点数,该浮点数就是上述 sec 和 msec 的整合形式,即 sec.msec 。

示例一
[PHP] 纯文本查看 复制代码
<?php
echo(microtime());
echo "<br>";
echo(microtime(true));
?>

运行输出:
0.43923700 1314697268
1314697268.4393

示例二
[PHP] 纯文本查看 复制代码
<?php
$sleep_second = 1;
if( isset( $argv[1] ) ) {
    if (preg_match('/\d/',$argv[1]) )
        $sleep_second = $argv[1];
}
$time_start = microtime(true) * pow(10,6);
for($i=$sleep_second; $i>0; $i-- ) {
    echo $i . " ";
    sleep(1);
}
echo "\n";
echo "sleep time = " . (microtime(true)*pow(10,6)-$time_start) . " micro time\n";
?>

运行输出:
C:\\php.exe sleep.php 3
3 2 1
sleep time = 3000579 micro time
上面的 pow() 是计算次方值的函数。该程序在调试状态下,直接在 Windows 里用 php.exe 来运行脚本,该脚本可以接收命令行参数(如上面的 3),该参数被 $argv[1] 环境变量所接收。
上面例子中,意图睡眠 3 秒,每秒打印 1 次倒计时,最后输出总的逝去时间,由输出可以看出,逝去时间 3000579  并不会精确的等于 3000000 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2