如果当前时间在特定时间后的 15 分钟内,则继续


Proceed if current time is within the 15 minute period after a specific time

如果我有一个指定的时间(例如23:55),如果当前时间在23:55和00:10之间,我想继续,我该怎么做? 指定的时间没有附加日期。

$specifiedTime = '23:55';
$currentTime = '00:05';
$timeDifference = strtotime($currentTime) - strtotime($specifiedTime);
if ($timeDifference < 900) {
// proceed if less than 15 minutes has elapsed since specifiedTime
}

timeDifference 返回为 86700。我希望它返回 600,因为这是两次之间的秒数。

更新:谢谢大家。这是工作代码 - 非常感谢删除其代码的用户,这是基于:
$currentTime    = time();
$fromTime       = strtotime('23:55');
$toTime         = strtotime('+15 minute', $fromTime);
if ($fromTime <= $currentTime && $currentTime <= $toTime) {
    echo '<br>Current time is within 15 minutes after from time';
} else {
    echo '<br>Current time is not within 15 minutes after from time';
}

更新2:正如Galvic指出的那样,这在某些时间之间不起作用,所以我选择了Sumurai8的解决方案。

我想

你打错了一个错字,因为你的代码表明这将返回 -85800。您很可能希望使用模运算符,它将给出除法的余数。请参阅文档。+ 86400(24 * 60 * 60)是为了确保结果始终是积极的。 % 86400会将答案除以 86400 并返回剩余的内容。 600 % 86400 = 600,而86800 % 86400 = 400.

$specifiedTime = '23:55';
$currentTime = '00:05';
$timeDifference = (strtotime($currentTime) - strtotime($specifiedTime) + 86400) % 86400;
if ($timeDifference < 900) {
// proceed if less than 15 minutes has elapsed since specifiedTime
}