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

时间:2013-09-28 08:23:21

标签: php 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的解决方案。

1 个答案:

答案 0 :(得分:2)

我想你输入了一个拼写错误,因为你的代码表明这会返回-85800。你很可能想要使用模运算符,它将给出除法的余数。见the documentation+ 86400(24 * 60 * 60)是为了确保结果始终为正。 % 86400将答案除以86400并返回剩余的答案。 600 % 86400 = 60086800 % 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
}