让我说我现在有时间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中做到这一点?
由于
:)
答案 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)
//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);