`execution_time()` 函数的时间错误

Wrong time for `execution_time()` function

public function execution_time($begin = null)
{
    if($begin == null){
        return microtime(true);
    }
    else {
        $result = date("H:i:s", microtime(true) - $begin);
        return $result;
    }
}

我正在计算执行时间。 但问题是当执行时间小于 1 小时时,它会写入错误的时间戳,例如:

$timeBegin = execution_time();
sleep(8);
$time_end = execution_time($timeBegin); // it shows 06:00:08

只持续了8秒,为什么出现了6个小时?为什么会发生这种情况以及如何解决这个问题?

由于您所在的时区,您有 6 小时的时差。

date_default_timezone_set('UTC');

行,将时区设置为 UTC 并消除差异。

您需要在脚本中设置默认 timezone

<a href="http://php.net/manual/en/function.date-default-timezone-set.php" rel="nofollow noreferrer">date_default_timezone_set</a>

这是工作示例

https://codebrace.com/editor/b16b092fb