13、PHP 原生魅力 - 系统功能 - 获取当前 UNIX 时间戳

作者: 温新

图书: 【原生 PHP 魅力】

阅读: 149

时间: 2024-09-08 05:58:36

返回当前 UNIX 时间戳: microtime()

microtime() 函数返回当前的 UNIX 时间戳(秒),同时包含微秒。microtime() 函数可以有一个布尔类型的输入参数来控制输出形式:

  • 没有输入参数或输入参数为 false 时,它会返回一个形如 “msec sec” 的字符串,其中 “msec” 代表微秒部分,“sec” 代表自 Unix 纪元以来的秒数。

    <?php
    
    $microtime = microtime();
    $microtimeType = gettype($microtime);
    
    echo $microtime . PHP_EOL;
    echo '类型:' . $microtimeType . PHP_EOL;
    

    输出如下:

    $ php 13-unixtime.php
    0.15486200 1717082980
    类型:string
    
  • 当输入参数为 true 时,它会返回一个浮点数 sec.msec,其中 sec 是完整的秒数,msec 是微秒部分,表示为秒的小数部分。

    <?php
    
    $microtime = microtime(true);
    $microtimeType = gettype($microtime);
    
    echo $microtime . PHP_EOL;
    echo '类型:' . $microtimeType . PHP_EOL;
    

    输出如下:

    $ 13-unixtime.php
    1717083061.9115
    类型:double
    

为何应避免使用 microtime() 来测量时间

如果需要测量消耗的时间,比如像秒表或计时器那样,建议使用 hrtime() 函数。这是因为 microtime() 是从系统时钟读取当前时间。如果在开始和结束时分别读取时间来计算差异,可能会遇到不一致的情况。例如,想象在两次读取之间日期时间被修改了(无论是手动修改还是像 NTP 这样的软件自动更新了系统时钟,从而改变了日期时间)。

{警告} 如果需要像秒表或计时器那样精确测量时间,应当使用另一个函数 hrtime()

请登录后再评论