2

试图从几秒钟内生成简单的“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"

如果在格式方法中使用其他日期格式选项?

有小提琴https://3v4l.org/Coi7q

4

2 回答 2

11

使用大写字母IS格式:

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

有关所有格式选项,请参阅手册

演示

于 2015-09-24T13:38:06.867 回答
3

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

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

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

于 2015-09-24T13:45:05.417 回答