找出时间段是否与当前时间匹配

Ale*_*lex 2 php time datetime date

我有这样的日期:

 // just a example date
 $time_in_the_future_start = date('H:i', time()+60*60*24*7);
 $time_in_the_future_end = date('H:i', time()+60*60*24*7+480);

 $now = date('H:i', time());
Run Code Online (Sandbox Code Playgroud)

如何判断当前时间是否在时间范围内$time_in_the_future

例如,如果

$time_in_the_future_start = 21:30;
$time_in_the_future_end = 0:30;
Run Code Online (Sandbox Code Playgroud)

$now = 22:07
Run Code Online (Sandbox Code Playgroud)

这将是一场比赛.

编辑: 澄清,这$time_in_the_future是一个反复发生的事件,具有过去或未来的日期.我只需要小时+分钟来匹配,而不是剩下的日期...基本上我只想比较一天的时间

Wh1*_*Ck5 5

函数inTimeRange()

我想,这将完美适用于您的情况.

  function inTimeRange($time_start, $time_end, $time_needle) {
    $res = false;
    $t1 = strtotime("1970-01-01 {$time_start}:00");
    $t2 = strtotime("1970-01-01 {$time_end}:00");
    $tn = strtotime("1970-01-01 {$time_needle}:00");
    if ($t1 >= $t2) $t2 = strtotime('+1 day', $t2);
    return ($tn >= $t1) && ($tn <= $t2); // or return ($tn > $t1) && ($tn < $t2);
    }

  var_dump(inTimeRange('21:30', '00:30', '22:07'));
Run Code Online (Sandbox Code Playgroud)

产量

真正

注意:所有参数必须采用格式HH:MM.您可以传递date("H:i", ...)此功能的参数.