我正在处理我正在使用的CMS的用户功能,并且每个页面加载时我都会更新用户
if(User("online") == true) {
LastOnlineUpdate($_SESSION['key']['userid']);
}
(是用户在线作品,这是我检查在线用户的功能) 现在,我的时间正确更新,连接到LastOnlineUpdate函数,然后运行我的类函数
public function SessionUpdate($arg) {
$query = <<<SQL
UPDATE {$this->tprefix}online
SET remote = :remote, timestamp = :timestamp
WHERE userid = :arg
SQL;
$resource = $this->db->db->prepare( $query );
$resource->execute( array(
':remote' => $_SERVER['REMOTE_ADDR'],
':timestamp' => time(),
':arg' => $arg,
));
}
现在每当我浏览我的页面时,它都会通过在我的预加载文件中包含第一个代码来更新用户,现在我已经遇到了我的路障但是我从未做过的事情,那就是把时间插入我的表,如果时间少于五分钟,请选择它并将其用于我的在线用户部分
public function OnlineUsers() {
$query = <<<SQL
SELECT userid
FROM {$this->tprefix}online
WHERE timestamp > time(5Minutes)
SQL;
$resource = $this->db->db->prepare( $query );
$resource->execute();
$this->onlinecount = $resource->rowCount();
if($resource->rowCount() == 0 ) {
$this->onlineusers = "No User's Online";
}
else
{
foreach($resource as $row) {
self::ConvertIDToName("displayname"); //Can be display, user, first or whatever else for the argument, The onlineusers variable is then set based off that query
}
}
}
答案 0 :(得分:1)
$minutes = 5;
$date = gmdate('Y-m-d H:i:s'); // http://php.net/manual/en/function.gmdate.php
$date_plus_minutes = gmdate('Y-m-d H:i:s', ( time() + $minutes * 60 ) );
$date_minus_minutes = gmdate('Y-m-d H:i:s', ( time() - $minutes * 60 ) );