20
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);

$interval上記をphpで秒に変換するにはどうすればよいですか

4

3 に答える 3

42

間隔の秒数を取得する別の方法は、それをゼロの日付に追加し、その日付のタイムスタンプを取得することです。

$seconds = date_create('@0')->add($interval)->getTimestamp();

このメソッドは、DateInterval コンストラクターを介して作成された間隔を多かれ少なかれ正しく処理しますが、shiplu の回答はそのような間隔の年、月、日を無視します。ただし、shiplu の回答は、2 つの日付を減算することによって作成された間隔に対してより正確です。時間、分、秒のみで構成される間隔の場合、どちらの方法でも正しい答えが得られます。

于 2014-03-17T21:06:56.833 に答える
29

これには関数がありますformat。ただし、秒数は返されません。秒数を取得するには、この手法を使用します

$seconds = abs($datetime1->getTimestamp()-$datetime2->getTimestamp());

どうしても使いたい場合$intervalは、計算する必要があります。

$seconds = $interval->days*86400 + $interval->h*3600 
           + $interval->i*60 + $interval->s;

ここ

  • 864001日の秒数です
  • 3600は 1 時間の秒数です
  • 60は 1 分間の秒数です
于 2013-01-11T11:52:03.200 に答える