我不知道我应该在数据库中存储什么样的价值。
我想我应该这样做,但我不知道如何:
存储自2000年1月1日起的给定日期以来的年,日,小时,分钟 然后在另一个时间我会将该值与自2000年1月1日以来的当前年,日,小时和分钟进行比较。显然,两者之间的区别在于用户上次登录后的时间。
我感谢任何人可以提供的任何帮助。 提前致谢
答案 0 :(得分:3)
mysql
会为您完成此操作。它将存储自1970年1月1日以来的秒数。并计算差异。
试试这个:SELECT NOW();
。你会看到现在的日期/时间。试试SELECT UNIX_TIMESTAMP(NOW());
你会看到自大纪元以来的秒数(但你通常不需要它)。
每次用户登录时都应存储此值,这意味着将now()插入表或更新last_login字段。
您有两种选择:
INSERT INTO user_login_history (user_id, login_date) VALUES (1, NOW());
和
UPDATE users SET last_login=NOW() WHERE user_id=1;
请注意,last_login
和login_date
字段必须为DATETIME
类型(存储日期和时间)或TIMESTAMP
或DATE
(只有日期)或TIME
(仅限时间)。
此外,您可以使用DATEDIFF
在mysql中进行时间计算,如下所示:
SELECT NOW(), DATEDIFF(NOW(), DATE('2012-6-5'));
在您的表格中,SELECT DATEDIFF(NOW(), last_login) AS "days_since_last_login" FROM users;
答案 1 :(得分:2)
为什么不使用TIMESTAMP或DATETIME?这就是你所需要的一切。
答案 2 :(得分:1)
您可以存储上次登录的时间戳,然后进行算术运算。也许你应该看一下DateTime :: diff方法让PHP做硬数学; - )