【问题标题】:time difference between two datetime only in hours两个日期时间之间的时间差仅以小时为单位
【发布时间】:2017-06-24 14:41:59
【问题描述】:

如何仅以小时为单位获取两个日期时间之间的时差

我的代码是

$datetime1 = new DateTime('2017-02-06 04:00:00 AM');
$datetime2 = new DateTime('2017-02-07 04:10:00 AM');
$interval = $datetime2->diff($datetime1);
echo $interval->format('%d')." Days ".$interval->format('%h')." Hours ".$interval->format('%i')." Minutes";

我的输出是 1 天 0 小时 10 分钟

但我想要像“24 小时 10 分钟”这样的输出

【问题讨论】:

标签: php


【解决方案1】:

不要单独打印天数,将其乘以 24 并添加到小时数。

echo 24*$interval->format('%d') + $interval->format('%h') . " Hours " . $interval->format('%i') . " Minutes";

【讨论】:

  • 谢谢!!我得到了答案!
【解决方案2】:
$interval = ($datetime2 - $datetime1 )/60/60;

回声 $interval;

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,包括说明 如何为什么 这解决了问题 would really help 以改进你的帖子质量。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。
【解决方案3】:

还有一个,

echo round((strtotime($datetime1) - strtotime($datetime2))/3600, 1);

也试试这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 2020-11-12
    • 2011-11-29
    相关资源
    最近更新 更多