【问题标题】:How to get the SHORTEST difference between two times in PHP?如何在 PHP 中获得两次之间的最短差异?
【发布时间】:2017-10-07 20:24:50
【问题描述】:

我目前正在像下面这样在几分钟内得到两次之间的差异,它工作正常......

$time1 = strtotime($firsttime);
$time2 = strtotime($secondtime);
$interval  = abs($time2 - $time1);
$diffinminutes   = round($interval / 60);

但是比如说……

$firsttime = 02:05
$secondtime = 20:05

此计算将返回 1080 分钟(18 小时 x 60 分钟)。

我希望能够得到最短的差异,基于时间是一个连接的圆圈(即像一个时钟哈哈)。

因此,在上面的示例中,我宁愿它从 02:05“倒退”到 20:05,从而返回 360 分钟(6 小时 x 60 分钟)。

换句话说,我希望得到最短的差异,无论我们去哪个方向找到它。

希望这是有道理的。

任何有关如何实现此目的的见解将不胜感激,谢谢!

【问题讨论】:

标签: php


【解决方案1】:

(假设您的输入只是时间而不是时间戳。)

如果您的结果大于 12 小时,则只需从 24 中减去:

if ($result > 720) {
    $result = 1440 - $result;
}

您可能需要将> 更改为>=,具体取决于您希望平局落在哪一边。

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多