PHP检查当前时间是否小于特定时间

时间:2013-08-04 01:14:59

标签: php time

让我说我现在有时间21:07:35,这次是这样的变量21:02:37

<?php
$current_time = "21:07:35";
$passed_time = "21:02:37";
?>

现在我想检查$current_time是否小于5 minutes,然后回显You are online 那我怎么能在PHP中做到这一点?
由于
:)

4 个答案:

答案 0 :(得分:5)

将给定时间与当前时间进行比较:

if (strtotime($given_time) >= time()+300) echo "You are online";

300是您要检查的秒数差异。在这种情况下,5分60秒。

如果要比较两个任意时间,请使用:

if (strtotime($timeA) >= strtotime($timeB)+300) echo "You are online";

请注意:如果时间在不同的日期,例如星期五23:58和星期六00:03,则会失败,因为您只是将时间作为变量传递。你最好先存储并比较Unix时间戳。

答案 1 :(得分:3)

$difference = strtotime( $current_time ) - strtotime( $passed_time );

现在$difference保持时间差异(以秒为单位),因此只需除以60即可获得分钟差异。

答案 2 :(得分:2)

使用Datetime class

//use new DateTime('now') for current
$current_time = new DateTime('2013-10-11 21:07:35');
$passed_time = new DateTime('2013-10-11 21:02:37');
$interval = $current_time->diff($passed_time);
$diff = $interval->format("%i%");

if($diff < 5){
 echo "online";
}

答案 3 :(得分:1)

$my_time = "3:25:00";
$time_diff = strtotime(strftime("%F") . ' ' .$my_time) - time();


if($time_diff < 0)
    printf('Time exceeded by %d seconds', -$time_diff);
else
    printf('Another %d seconds to go', $time_diff);