使用 explode('.', microtime(true)) 即可将微秒时间戳拆分为秒和微秒两部分。该函数返回一个包含两个元素的数组,索引 0 为秒数,索引 1 为微秒数。若需确保微秒部分为整数,可对结果进行类型转换或截断处理。

microtime(true) 返回值的结构是什么
microtime(true) 返回的是一个浮点数,表示从 Unix 纪元开始到当前的秒数,小数点后是微秒部分。例如 1698765432.123456 中,1698765432 是秒,.123456 是微秒。通过字符串拆分可以清晰分离这两部分。

$ts = microtime(true);
$parts = explode('.', (string)$ts);
$seconds = $parts[0];
$microseconds = isset($parts[1]) ? $parts[1] : '0';
echo "Seconds: $seconds, Microseconds: $microseconds";
如何处理微秒部分不足六位的情况
当微秒部分不足六位时,如 1698765432.1,直接拆分会导致微秒值被误读。应使用 str_pad() 补齐至六位,或结合 number_format() 控制精度。这样可保证后续计算或存储的一致性。

$ts = microtime(true);
$floatStr = number_format($ts, 6, '.', '');
$parts = explode('.', $floatStr);
$seconds = $parts[0];
$microseconds = $parts[1];
echo "Seconds: $seconds, Microseconds: $microseconds";
基于程序中某个输入、条件或结果的具体问题
在高频调用场景下,频繁创建字符串和数组可能带来性能开销。此时可考虑直接使用 list($sec, $usec) = sscanf(microtime(true), '%f'); 的方式解析,避免中间变量分配,提升执行效率。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











