DateTime :: diff仅计算当天 - PHP

时间:2012-01-27 17:42:35

标签: php datetime

我想计算两个日期的小时数差异。这是我的代码:

$date_now = new DateTime(date("Y-m-d H:i:s"));
$date_db  = new DateTime("2010-01-24 01:01:25");

$difference = $date_now->diff($date_db);

echo $difference->h;

问题:返回的小时数仅对应于同一天...所以在这个例子中,即使我使用2010年,小时差异也不会超过24.我如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

当然,当你得到时间时,它只是当天的几小时。否则,在大多数情况下,该信息将毫无用处。考虑是否要将输出格式化为

  

Interval是 x 个月, y 天, z 小时。

如果DateInterval对象上的 h 变量按照您的假设工作,那么最终可能会得到像

这样的输出
  

间隔时间为1个月,35天和2108小时。

因此,如果您想将显示为小时,则必须根据{{3}将当天的小时数相加并添加到当天的小时数。 }。

$difference->h + $difference->d * 24;

答案 1 :(得分:2)

echo $difference->h + $difference->d * 24;

同样,如果需要的话,链条上的任何间隔......

答案 2 :(得分:0)

$diff = intval( ( time() - strtotime( '2010-01-24 01:01:25' ) ) / 3600 );