2

終了日から開始日までの合計時間の時差を表示する必要がある1つのアプリケーションを実装しています。タイムスタンプに開始日と終了日の両方があると仮定します。合計時間で日付の差を取得するにはどうすればよいですか?今私は以下のコードを使用しています

 $intervalo = date_diff(date_create(), date_create($end));
    pr($intervalo);

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

DateInterval Object
(
    [y] => 0
    [m] => 1
    [d] => 4
    [h] => 18
    [i] => 41
    [s] => 2
    [invert] => 0
    [days] => 34
)

上記のコードは、終了日が1か月よりも大きい合計時間を示しています。これは、配列に1mを示しています。しかし、私は合計時間だけが欲しいのですが、誰でも私を助けることができますか?前もって感謝します

4

1 に答える 1

5

使用しないでくださいdate_diff。日付をタイムスタンプ(秒を表す)に変換し、2を減算して、で除算し3600ます。

$x = date_create();
$y = date_create($end)
$hours = ($y->getTimestamp() - $x->getTimestamp()) / 3600;

時間、分、秒が必要な場合:

$x = date_create();
$y = date_create($end)
$diff = ($y->getTimestamp() - $x->getTimestamp());

$seconds = $diff % 60;
$diff    = (int)($diff / 60);
$minutes = $diff % 60;
$diff    = (int)($diff / 60);
$hours   = $diff;
于 2012-11-28T05:56:14.603 に答える