我希望在特定时间间隔内显示警报,并在ifrt消息中等待经过几分钟 我使用此代码,它的工作原理。但我需要经过时间才能在消息中显示
如果当前时间超过晚上11:45或早于00:10
,则应显示该消息 $c_time = mktime();
$s_time = strtotime('Today 11:45pm');
$e_time = strtotime('Today 0:10am');
if ($c_time > $s_time or $c_time < $e_time)
$error .= 'sorry plaese wait 30 minutes <br />';
我使用此代码,但它显示的数字我不知道如何使用
$c_time = mktime();
$s_time = strtotime('Today 11:45pm');
$e_time = strtotime('Today 0:10am');
$elapse_time = min (abs($c_time - $s_time) , abs($e_time - $c_time ));
if ($c_time > $s_time or $c_time < $e_time)
$error .= "sorry plaese wait , $elapse_time , minutes<br />";
感谢。
答案 0 :(得分:1)
Strtotime将显示自1970-01-01 00:00:00以来经过的秒数。因此,减去两次的结果显示为秒。 您需要将其除以60以显示以分钟为单位的值。 您可能还想在http://www.w3schools.com/php/func_date_strtotime.asp
上阅读更多关于strtotime的内容您可以尝试以下代码
$s_time = strtotime('Today 11:45pm');
$e_time = strtotime('Today 0:10am');
$elapse_time = ($s_time - $e_time) / 60;
if($elapse_time < 30){
//bla bla bla
}
答案 1 :(得分:0)
首先,您可能希望将$ elapse_time除以60,因为该值以秒为单位,您需要几分钟。
其次,我认为abs($ c_time- $ s_time)在晚上11点50分是5分钟,而不是20分,这是你想要的结果。试试......
$elapse_time = $e_time - $c_time;
if($elapse_time < 0) $elapse_time += 86400;
$elapse_time /= 60;
甚至更好
$elapse_time = $e_time - $c_time;
if($elapse_time < 0) $elapse_time = strtotime("Tomorrow 0:10 am") - $c_time;
$elapse_time /= 60;