php 从两个日期的间隔中仅获取日期和小时

php get only day and hours from an interval of two date

如何计算两个日期之间的天数和小时数之差?例如,如果:

想要的结果是date1date2的差,或者:

我试过这样做:

$interval = date_diff($data_in, $data_out);
$days=$interval->days;
$hours=$interval->format('%h');
echo "days: ".$days. " hours: ".$hours;

$days 正确,但 $hours 不正确。谁能帮我弄清楚为什么?

完全使用这段代码,我得到的输出是 "days 4 hours: 2":

<?php
  $data_in = new DateTime('2015-03-05 09:25:00');
  $data_out = new DateTime('2015-03-09 11:25:03');
  $interval = date_diff($data_in, $data_out);
  $days = $interval->days;
  $hours=$interval->format('%h');
  echo "days ".$days." hours: ".$hours;
?>

你能post从哪里得到 $data_in 和 $data_out 吗?在您的 "example" 中,您使用 "date1" 和 "date2",在您的代码中,您使用 $data_in 和 $data_out。您能否通过执行以下操作来验证时区是否相同以及日期是否确实包含您所期望的内容:

var_dump($data_in);
var_dump($data_out);