在php中以特定时间间隔显示警报

时间:2013-11-15 09:58:01

标签: php time intervals

我希望在特定时间间隔内显示警报,并在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 />";

感谢。

2 个答案:

答案 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;