我需要能够检查时间是否超过指定时间的15分钟。
但我的问题是它只是比较分钟,而不是几天或几年或几个月。
编辑:我已经更新了我的代码,但它仍然不适用于前几天。
$notification_time = strtotime("-1 hour", $cal_time);
$really_now = time();
if($really_now >= strtotime("-15 minutes", $notification_time) && $really_now <= strtotime("+15 minutes", $notification_time))
{ echo 'within time!'; }
如果$ really_now在$ cal_time的-1小时的30分钟内,则上述代码有效。但是当我尝试:
$notification_time = strtotime("-1 day", $cal_time);
如果当前时间在$ cal_time -1天的30分钟内,则无效。
答案 0 :(得分:0)
<?php
$cur_time = time();
$from_time = strtotime("-1 hour", $cur_time);
echo round(abs($cur_time - $from_time) / 60,2). " minute";
?>
这将提供分钟的差异。请注意,这篇文章同样回答:
答案 1 :(得分:0)
我的回答..
$notification_time = strtotime("-1 day", $cal_time);
$really_now = time();
if($really_now >= strtotime("-15 minutes", $notification_time) && $really_now <= strtotime("+15 minutes", $notification_time)){ echo 'shazam!'; }
答案 2 :(得分:0)
我用这个片段检查餐厅的关闭时间和开放时间范围。餐厅也可以是夜总会,可以在晚上8点开放,并在凌晨2点关闭。所有情况(前进距离和反向距离)都是正确的。参数格式只是时间格式。无日期。将current_order_time = 0放在参数中,因为没有等待时间。
echo isOnline('22:59:00','00:59:59','23:39:01',81);
function isOnline($open_time,$close_time,$now, $current_order_time){
$live=1;
$open=strtotime($open_time);
$close=strtotime($close_time);
//echo $open ."<". $close. "<br>" ;
if($open > $close){
$now=strtotime(date("Y-m-d ").$now);
$now_collection=$now +($current_order_time*60);
$open=strtotime(date('Y-m-d').' '.$open_time);
$close=strtotime('+1 day',strtotime(date('Y-m-d').' '.$close_time));
//echo $open ."<". $now_collection ."&&". $close .">". $now_collection ."&&". $open ."<". $now ."&&". $close .">". $now."<br>";
if(!($open < $now_collection && $close > $now_collection && $open < $now && $close > $now )){
//return $this->getFinalFailure("The restaurant is currently Off-line and not taking orders",2000);
$live=0;
}
}else{
$now=strtotime($now);
$now_collection= $now + ($current_order_time*60);
//echo $open ."<". $now_collection ."&&". $close .">". $now_collection ."&&". $open ."<". $now ."&&". $close .">". $now."<br>";
if(!($open < $now_collection && $close > $now_collection && $open < $now && $close > $now )){
$live=0;
}
}
return $live;
}