【问题标题】:PHP < 5.3 => Difference in hours between two datesPHP < 5.3 => 两个日期之间的小时差
【发布时间】:2014-07-18 10:32:14
【问题描述】:

在当前的项目中,我遇到了困难,因为我需要比较两个日期并找出日期之间的差异(以小时为单位),如果服务器 >= 5.3,这将很容易,有人可以帮助我吗?

我的时间戳不同

$diff = abs(strtotime($date1)-strtotime($date2)

但我不知道下一步该做什么......

谢谢。

【问题讨论】:

标签: php date time difference


【解决方案1】:

在您的代码中,$diff 是以秒为单位的差异。您可以像这样将秒数转换为小时数:

$hours = floor($diff / (60 * 60));

编辑:获取分钟和秒数:

$minutes = floor(($diff - $hours * 60 * 60) / 60);
$seconds = floor($diff - $hours * 60 * 60 - $minutes * 60);

【讨论】:

  • 更简单的是 $minutes=$diff/60;
  • @AnthonyScaife 不一样。它只会将差异(以秒为单位)转换为没有意义的分钟。 OP 希望将差异显示为小时:分钟:秒。
  • 哇,这太棒了!如何检查 $date2 是否距离 $date1 不到 10 小时?
【解决方案2】:

试试这个

echo round((strtotime($date1) - strtotime($date2))/(60*60));

【讨论】:

  • 谢谢!这很好用,现在我只需要找出如何将其显示为 H:m:s(如 36hours:27minutes:12seconds),这可能吗?
【解决方案3】:

在您的代码中,$diff 以秒为单位。 一小时有3600秒,所以:

$date1 = "2014-07-15";
$date2 = "2014-07-17";

$diff_seconds = abs(strtotime($date1)-strtotime($date2));
$diff_hours = $diff_seconds/3600;

echo $diff_seconds.' '.$diff_hours;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 2011-04-15
    • 1970-01-01
    相关资源
    最近更新 更多