如何在PHP中将毫秒数格式化为分钟:秒:毫秒?
2022-08-30 21:41:16
我有一个总毫秒(即70370),我想将其显示为分钟:秒:毫秒,即00:00:0000。
如何在 PHP 中执行此操作?
我有一个总毫秒(即70370),我想将其显示为分钟:秒:毫秒,即00:00:0000。
如何在 PHP 中执行此操作?
不要陷入使用日期函数的陷阱!你在这里拥有的是一个时间间隔,而不是一个日期。幼稚的方法是做这样的事情:
date("H:i:s.u", $milliseconds / 1000)
但是由于日期函数用于(喘口气!)日期,因此在这种情况下,它不会以您希望的方式处理时间 - 在格式化日期/时间时,它会考虑时区和夏令时等。
相反,您可能只想做一些简单的数学运算:
$input = 70135;
$uSec = $input % 1000;
$input = floor($input / 1000);
$seconds = $input % 60;
$input = floor($input / 60);
$minutes = $input % 60;
$input = floor($input / 60);
// and so on, for as long as you require.
如果您使用的是 PHP 5.3,则可以使用 DateInterval
对象:
list($seconds, $millis) = explode('.', $milliseconds / 1000);
$range = new DateInterval("PT{$seconds}S");
echo $range->format('%H:%I:%S') . ':' . str_pad($millis, 3, '0', STR_PAD_LEFT);