[英]Get difference between two timestamps in minutes, hours or seconds in php
[英]Cannot get difference between two timestamps
我想返回相差少于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();
您的代码有两个问题。 首先,由于count()
,您将使用隐式组将所有记录缩减为1条记录-然后通过num_rows()
返回返回的记录数。
第二个问题是,您将获得表中的每条记录,其中上一次登录将在未来30分钟以内...它将始终是每一行。
echo date('H:i') . "\n" . date('H:i', strtotime('+30 minutes'));
产量:
16:38
17:08
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.