无法获取两个时间戳之间的差异

问题描述 投票:0回答:1

我想返回的有差异不到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();
php codeigniter-3
1个回答
0
投票

有两个问题与您的代码在这里。首先,是要切断一切下降到1个纪录隐性组感谢count() - 然后得到的通过num_rows()返回的记录数。

第二个问题是你得到的每一个记录的表,其中最后一次登录是在未来不到30分钟......这将永远是每一行。

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

产量:

16:38
17:08
© www.soinside.com 2019 - 2024. All rights reserved.