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()
。
请登录后再评论