2013-11-15 41 views
0

我想在特定的时间间隔内显示警报,等待allert消息的时间间隔 我使用此代码,它的工作原理是正确的。但我需要经过时间的消息显示在php中的特定时间间隔显示allert

消息应该显示,如果目前的时间超过11时45分或之前上午12时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 />"; 

谢谢。

回答

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 
} 
+0

据我了解你在$ elapse_time都拿到一大堆数字。我错了吗? –

0

首先,你可能希望通过60分$ elapse_time,该值以秒为单位,你需要几分钟。第二,我认为abs($ c_time- $ s_time)在11:50 pm是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; 
+0

它显示了这些数字---当前时间:1384514176 elapse:-1384514176($ elapse_time = $ e_time - $ c_time;) - 请问为什么我问你关于数字 - 感谢您的帮助 – user2995711