在PHP中将秒转换为HH:MM:SS

9 php

我尝试使用gmdate将秒转换为HH:MM:SS使用此代码:

gmdate("H:i:s", $result["s"]
Run Code Online (Sandbox Code Playgroud)

$result["s] 等于 142:000

当我回显gmdate代码时,它显示00:24:02哪个是错误的,它应该是00:02:36

Gla*_*vić 12

120来自哪里?142(或142.000)秒等于2分36秒(142/60)

142 / 60 = 2.36666667 minutes这不等于2min 36sec.2.36666是十进制数,表示分钟数.如果您希望格式化2.36666为分钟和秒,则将整数作为分钟,并0.366666 * 60以秒为单位,即22结果为2min 22sec.


您应该将第二个参数转换为整数,或者至少删除:000部分:

$result['s'] = '142:000';
echo gmdate("H:i:s", (int)$result['s']); # 0:02:22
Run Code Online (Sandbox Code Playgroud)

demo

如果您的时间超过86400秒(1天),您将遇到问题.在这种情况下,您可以使用它.