0

正確に 72 時間になるはずなのに、72 時間 12 秒かかってしまうのはなぜですか?

http://codepad.org/KNj44By5

4

1 に答える 1

3

あなたの計算が間違っているからです。$elapsedは秒単位になるため、モジュラスを取得する前に割る必要はありません。あなたが実際に得ているのは、時間のモジュラス % 60 です。

次のように機能します。

$in = strtotime("2011-10-02 23:00:00");
$out = strtotime("2011-10-05 23:00:00"); // 72 hours apart

$elapsed = $out - $in;

$hours = floor($elapsed / 3600);
$minutes = floor(($elapsed / 60) % 60);
   if (strlen($minutes) == "1") { $minutes = "0".$minutes; } // No single digits

$seconds = $elapsed % 60;
   if (strlen($seconds) == "1") { $seconds = "0".$seconds; } // No single digits

$total = $hours.":".$minutes.":".$seconds; // Should be 72:00:00

echo $total

編集

また、ゼロパディングを台無しにしました。あなたは に変わってい2まし20た。

ここで更新されたコードパッド: http://codepad.org/XY8L9EJ1

于 2011-10-06T17:45:08.403 に答える