【问题标题】:php get only day and hours from an interval of two datephp从两个日期的间隔中只获取天和小时
【发布时间】:2015-03-10 01:39:00
【问题描述】:

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

  • 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 不正确。谁能帮我弄清楚为什么?

【问题讨论】:

  • 你得到什么不正确的结果?这可以按预期工作,对两个日期使用 DateTime 对象。 3v4l.org/fHKRC
  • 改进的格式和语法
  • 我解决了将 $interval->format('%h') 放在一个小时数组中

标签: php codeigniter datetime


【解决方案1】:

完全使用这段代码,我得到的输出是“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;
?>

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

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

【讨论】:

  • 我解决了将 $interval->format('%h') 放入 $hours 数组中
  • 好的。我很高兴你找到了解决方案! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
相关资源
最近更新 更多