如果我有指定的时间(例如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的解决方案。
答案 0 :(得分:2)
我想你输入了一个拼写错误,因为你的代码表明这会返回-85800。你很可能想要使用模运算符,它将给出除法的余数。见the documentation。 + 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
}