PHP DateInterval 格式分钟和秒带前导零

PHP DateInterval format minutes and seconds with leading zero

试图从几秒钟内生成简单的 "H:i:s" 字符串,但不能

示例:

$iSecond = 188;
$dtF = new DateTime("@0");
$dtT = new DateTime("@$iSecond");
$size = $dtF->diff($dtT)->format('%H:%i:%s');
echo $size;

应该显示 "00:03:08" ,但实际上是 "00:3:8"

是否有其他日期格式选项可用于格式化方法?

有fiddlehttps://3v4l.org/Coi7q

使用大写 IS 进行格式化:

$size = $dtF->diff($dtT)->format('%H:%I:%S');

the manual for all of the formatting options

Demo

John 是正确的,但您的代码似乎没有必要,这应该是相同的:

$iSecond = 188;
$dtT = new DateTime("@$iSecond");
$size = $dtT->format('H:i:s');

没有理由创建 @0 的日期时间并在此代码中使用 diff/DateInterval。