Php 时间戳早于当前时间if else语句

Php 时间戳早于当前时间if else语句,php,datetime,Php,Datetime,现在,我正在测试一个在线/离线函数,该函数带有数据库中的时间戳和DateTime 但是我不知道如何设置间隔时间,比如说5分钟。 如果用户在5分钟内没有做任何事情,则显示为脱机 DateTime NOW将始终大于数据库时间。 关于如何设置语句的间隔时间有什么想法吗 这就是我到目前为止所做的 // $user_info['activity'] 2013-04-27 19:27:39 // $dateTime = new DateTime("now", new DateTimeZone('Europ

现在,我正在测试一个在线/离线函数,该函数带有数据库中的时间戳和DateTime

但是我不知道如何设置间隔时间,比如说5分钟。 如果用户在5分钟内没有做任何事情,则显示为脱机

DateTime NOW将始终大于数据库时间。 关于如何设置语句的间隔时间有什么想法吗

这就是我到目前为止所做的

// $user_info['activity'] 2013-04-27 19:27:39 //

$dateTime = new DateTime("now", new DateTimeZone('Europe/Warsaw'));
if($user_info['activity']>$dateTime){
echo 'user Online';
}else{
echo 'user inactive';
}

像这样的东西可能有用

$now = new DateTime(null, new DateTimeZone('Europe/Warsaw'));
$last_activity = new DateTime($user_info['activity']); 
$last_activity->modify('+5 minutes');

if($now > $last_activity){
    echo 'user inactive';
}else{
    echo 'user online';
}

像这样的东西可能有用

$now = new DateTime(null, new DateTimeZone('Europe/Warsaw'));
$last_activity = new DateTime($user_info['activity']); 
$last_activity->modify('+5 minutes');

if($now > $last_activity){
    echo 'user inactive';
}else{
    echo 'user online';
}

一种可能的解决方案是将数据库时间戳也更改为DateTime对象,然后使用该方法进行比较

$dateTime1 = new DateTime(strtotime($user_info['activity']), new DateTimeZone('Europe/Warsaw'));
$dateTime2 = new DateTime("now", new DateTimeZone('Europe/Warsaw'));

$interval = $dateTime1->diff($dateTime2);

这将允许您确定时间间隔并使用它进行比较。

一种可能的解决方案是将数据库时间戳也更改为DateTime对象,然后使用该方法进行比较

$dateTime1 = new DateTime(strtotime($user_info['activity']), new DateTimeZone('Europe/Warsaw'));
$dateTime2 = new DateTime("now", new DateTimeZone('Europe/Warsaw'));

$interval = $dateTime1->diff($dateTime2);
这将允许您确定间隔并使用它进行比较。

用于此:

$now = new DateTime();
$activity = $user_info['activity'];
// get difference between the two dates   
$difference = $now->diff($activity);

// ->i contains the minutes
if($difference->i >= 5) {
    echo "logged out";
}
用于此:

$now = new DateTime();
$activity = $user_info['activity'];
// get difference between the two dates   
$difference = $now->diff($activity);

// ->i contains the minutes
if($difference->i >= 5) {
    echo "logged out";
}

我最近做过这样的事情,就像这样:

$time = time();
$last_activity = //time from db
$time_since = $time - $last_activity

如果您的应用程序需要,请清理
$time\u,如下所示:

$time = time();
$last_activity = //time from db
$time_since = $time - $last_activity

如果应用程序需要,请清理
$time\u,因为

为什么不使用
DateTime::diff()
?它是为this@john康德,它几乎像一个魔咒一样工作,但我不知道分钟后是否工作。如果我有+5个非活动超过小时的用户仍然在线显示。为什么不使用
DateTime::diff()
?它是为this@john康德,它几乎像一个魔咒一样工作,但我不知道分钟后是否工作。如果我有+5个不活动超过小时的用户仍然在线。问题是dateTime不支持当前更新,但如果我用更新解决问题,这看起来是一个完美的解决方案问题是dateTime不支持当前更新,但如果我用更新解决问题,这看起来像完美解