-2

如果我有一个指定的时间(例如 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 的解决方案。

4

1 回答 1

2

我想你打错了,因为你的代码表明这将返回 -85800。您很可能希望使用模运算符,它将给出除法的其余部分。请参阅文档。( + 8640024*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
}
于 2013-09-28T09:10:42.383 回答