php从两个日期的间隔中获得只有一天和几小时

时间:2015-03-10 01:39:01

标签: php codeigniter datetime

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

  • date1 = 2015-03-05 09:25:00
  • date2 = 2015-03-09 11:25:03

所需的结果是date1date2之间的差异,或者:

  • 4天2小时

我试过这样做:

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

$days是正确的,但不是$hours。任何人都可以帮我找出原因吗?

1 个答案:

答案 0 :(得分:1)

正是使用这段代码,我得到的输出是“天4小时: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;
?>

你可以发布你从$ data_in和$ data_out获得的地方吗?在您的“示例”中,您使用“date1”和“date2”,并在您的代码中使用$ data_in和$ data_out。您可以通过执行以下操作验证时区是否相同,并且日期确实包含您期望的内容:

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