【问题标题】:php check if time is between range [closed]php检查时间是否在范围之间[关闭]
【发布时间】:2021-06-19 13:42:19
【问题描述】:

我正在寻找一种方法来检查某个时间是否在某个时间范围内。

示例: 时间跨度:22:30到04:20

如果介于 13:23 之间,我如何轻松检查 php?

只是关于时间,当天不应该起作用。

【问题讨论】:

    标签: php timespan


    【解决方案1】:

    首先定义两种情况:

    • 同一天。如果 T1

    • 不同的日子。如果 T1 或 Tx

    如何区分两种情况:如果 T1

    极端情况:是在第二天的 20:30 到 20:31 之间的 21:30?当然是的。但是“一天20:30到当天20:31”和“一天20:30到第二天20:31”这两种情况无法区分,所以有是否有可能(取决于您的时间来自何处)无论您设计什么测试,它仍然会失败。

    当然,如果您始终处于“同一天”场景中,则永远不会发生此错误 - 但您将无法接受问题中的“22:30 至 04:20”示例。

    function between($time, $time1, $time2) {
        if ($time1 < $time2) {
            // same day
            // 09:30 <= 10:27 <= 12:15  : $time is between
            return ($time1 <= $time) && ($time <= $time2);
        }
        // time1 is day1, time2 is next day
        // 22:30 <= 23:30 or 02:15 <= 04:30: both 22:30 and 02:15
        // are in the [ 22:30...04:30 ] range
        // 06:27 is neither >= 23:30 nor <= 02:15, so is out of range
        return ($time1 <= $time) || ($time <= $time2);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2020-02-04
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多