Reputation: 15
I want to display alert in specific time interval with elapse minutes to wait in allert message i use this code and it works true . but i need elapse time to be shown in message
the message should be show if current time is more than 11:45pm or before 00:10 am
$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 />';
I use this code but it shows numbers that i dont khow how to use
$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 />";
thanks.
Upvotes: 0
Views: 149
Reputation: 20224
First, you may want to divide $elapse_time by 60, for the value is in seconds, and you need minutes.
Second, I think abs($c_time-$s_time) is 5 minutes at 11:50pm, not 20, which is your desired result. Try sth like
$elapse_time = $e_time - $c_time;
if($elapse_time < 0) $elapse_time += 86400;
$elapse_time /= 60;
or even better
$elapse_time = $e_time - $c_time;
if($elapse_time < 0) $elapse_time = strtotime("Tomorrow 0:10 am") - $c_time;
$elapse_time /= 60;
Upvotes: 0
Reputation: 1704
Strtotime will show you the time since the number of seconds that passed since 1970-01-01 00:00:00. So the result of your subtracting the two times is shown as seconds. You need to divide that by 60 to show the value in minutes. You might also want to read a bit more on strtotime at http://www.w3schools.com/php/func_date_strtotime.asp
You could try the below code
$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
}
Upvotes: 1