2

我正在实现一个应用程序,其中我必须显示从结束日期到开始日期的总小时数的时间差。假设我在时间戳中有开始日期和结束日期。那么我将如何获得总小时的日期差异?现在我正在使用下面的代码

 $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
)

上面的代码显示了结束日期的总小时数大于 1month 它在数组中显示 1m。但我只想要总小时数只有任何人可以帮助我吗?提前致谢

4

1 回答 1

5

不要使用date_diff. 将日期转换为时间戳(表示秒),将两者相减,然后除以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 回答