1

DateInterval最近、単純な問題に遭遇しました。DateInterval次のように巨大な秒の値を持つオブジェクトを作成した後、クラスはそのプロパティを再計算しません。

$interval = new DateInterval('PT6685071S');
echo $interval->format("%m months %d days %H hours %i minutes %s seconds");

出力は次のようになります。

0 か月 0 日 00 時間 0 分 6685071 秒

次のように表示させる方法:

2ヶ月16日 8時間57分51秒

秒を 60 で割らずに、分を 60 で割らずに、など?

(私の計算が正しいことを願っています)

4

1 に答える 1

5

これは DateTime クラスで実現できます

使用する:

echo secondsToTime(1640467);

18日23時間41分7秒

関数:

function secondsToTime($seconds) {
    $dtF = new DateTime("@0");
    $dtT = new DateTime("@$seconds");
    return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');
}

サンプルデモ

于 2015-03-05T09:35:34.323 に答える