使用时间戳显示活跃用户?
我正在开发一个非常简单的定制内容管理系统(CMS)。有一个数据库表,其中包含用户名、密码、电子邮件地址和一个日期/时间字段,显示用户上次登录的时间(更新时我在查询中使用“NOW()”)。
当用户成功登录时,脚本将更新数据库中的表并设置新时间(使用 NOW())。
现在我想显示过去 5 或 10 分钟内当前登录的用户。我不知道如何实现这一点,因此我请求您的帮助。在互联网上我读到我需要使用时间戳来执行此操作,但我不知道这是如何工作的。
我需要知道如何设置特定时间戳。
我需要知道如何在 PHP 中检查用户是否在过去 5 或 10 分钟内登录过,以便我可以在某处显示他们的姓名。
感谢您的帮助!
I am working on a quite simple custom made content management system (CMS). There is a database table containing usernames, passwords, emailaddresses and a date/time field showing when the user logged in for the last time (I used "NOW()" in the query when updating).
When an user successfully logs in, the script will update a table in the database and sets the new time (using NOW()).
Now I would like to show which users are currently logged in, in the past 5 or 10 minutes. I have no idea how to accomplish this, therefore I am calling for your help. On the internet I read I need to do this with a timestamp, but I have no idea how this works.
I need to know how to set a specific timestamp.
I need to know how I can check in PHP if the user has been logged in in the past 5 or 10 minutes so I can display their names somewhere.
Thanks for your help!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
1.
为什么需要设置自定义时间戳?使用 NOW() 就可以了。
2. 此查询将查找过去 10 分钟内
latest_login
列所在的所有用户:SELECT * FROM users WHERElatest_login >= DATE_SUB(NOW() ,间隔 10 分钟)
1.
Why do you need to set a custom timestamp? Using NOW() is all you need.
2. This query will find all users where the column
latest_login
is in the past 10 minutes:SELECT * FROM users WHERE latest_login >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)
好的,这很简单
1ts - 使用函数 mktime 将日期转换为时间戳(检查谷歌,比方说 $date)
第二 - 使用函数 time() 获取当前时间戳(比方说 $now)
第三个 if ( ($now - $date) ) > ( 5 * 60 /* 5 分钟 */ ) ) { return "未登录" }
否则返回“登录”
时间戳记以秒为单位,因此 5*60 是 5 分钟
ok this is quite simple
1ts - convert your date into timestamp using function mktime (check google , lets say $date)
2nd - use function time() to get current timestamp (let say $now)
3rd if ( ($now - $date) > ( 5 * 60 /* 5 minute */ ) ) { return "not login" }
else return "login"
timestamp counts seconds so 5*60 is 5 minutes