我想计算两个日期的小时数差异。这是我的代码:
$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.我如何解决这个问题?
答案 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 );