首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php time()和microtime()有时并不一致

php time()和microtime()有时并不一致
EN

Stack Overflow用户
提问于 2012-08-10 02:35:01
回答 1查看 3.8K关注 0票数 5

在使用microtime() (使用PHP 5)记录一些数据时,我遇到了一些与我的日志文件的时间戳有点不一致的值,所以我只是尝试用一个简单的脚本比较time()和microtime()的输出(这里只是为了限制数据输出):

代码语言:javascript
复制
<?php
for($i = 0; $i < 500; $i++) {
    $microtime = microtime();
    $time = time();
    list($usec, $sec) = explode(" ", $microtime);
    if ((int)$sec > $time) {
        echo $time . ' : ' . $microtime . '<br>';
    }
    usleep(50000);
}
?>

现在,由于microtime在$time之前声明,我希望它更小,并且不应该输出任何内容;然而,显然不是这样,并且$time时不时地小于从microtime()返回的秒数,如下面的示例(截断)输出:

代码语言:javascript
复制
1344536674 : 0.15545100 1344536675
1344536675 : 0.15553900 1344536676
1344536676 : 0.15961000 1344536677
1344536677 : 0.16758900 1344536678

现在,这只是一个很小的差距;然而,我观察到一些序列的差异(相当)超过一秒……那么,这怎么可能呢?

EN

回答 1

Stack Overflow用户

发布于 2013-03-06 18:27:09

这可能是因为microtime()使用浮点数,因此使用rounding errors may occur

您可以指定floating point numbers' precision in php.ini

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11889809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档