Невозможно получить разницу между двумя временными метками - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу вернуть количество дат с разницей менее 30 минут.Это записи, хранящиеся в базе данных:

id | last_login
0    2019-02-11 17:22:47
1    0000-00-00 00:00:00
2    2019-02-11 17:22:03
3    0000-00-00 00:00:00
4    0000-00-00 00:00:00

результат запроса должен быть 2, но я получаю 1:

$time = strtotime('+30 minutes');

return $this->db->select('COUNT(last_login) AS users_online')
    ->from('login')
    ->where('UNIX_TIMESTAMP(last_login) < ' . $time)
    ->get()->num_rows();

1 Ответ

0 голосов
/ 11 февраля 2019

Здесь есть две проблемы с вашим кодом.Во-первых, вы сокращаете все до 1 записи с неявной группой благодаря count() - и затем получаете количество записей, возвращаемых через num_rows().

Вторая проблема заключается в том, что вы получаете каждуюзапись в таблице, где последний вход в систему будет менее 30 минут в будущем ... который всегда будет в каждой строке.

echo date('H:i') . "\n" . date('H:i', strtotime('+30 minutes'));

Выход:

16:38
17:08
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...