13、PHP 原生魅力 - 系统功能 - 获取当前 UNIX 时间戳
返回当前 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()。
请登录后再评论