我正在开发一个PHP应用程序,它以MySQL数据库为中心,我希望自动记录用户的注册时间。
感谢您的帮助!
答案 0 :(得分:2)
查看MySQL DateTime参考。
我建议在MySQL中使用UTC_TIMESTAMP()
,然后将时区从等式中取出并且非常准确。
mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
-> '2003-08-14 18:08:04', 20030814180804.000000
如果你将它用作一个字符串,你将获得日期格式,如果你将它用作数字选择器,你将得到一个数值。
答案 1 :(得分:1)
以下MYSQL代码将执行此操作:
INSERT INTO table_name (date_field) VALUE (now())
就准确性而言,MYSQL将最接近插入时间,但PHP和MYSQL之间的差异非常小,不会产生任何影响。
答案 2 :(得分:1)
插入记录时可以使用MySQL函数UNIX_TIMESTAMP()。
PHP和MySQL都将使用系统时钟的时间,因此无论您使用哪种结果,结果都应该相同。时间戳也以UTC格式存储,因此可以轻松切换到用户的时区。
IMO,你使用它(PHP或MySQL时间)没有任何区别,但我会将注册时间存储在INT
列中作为时间戳。
插入内容可能如下所示:
INSERT INTO `user`
(id, username, registrationTime)
VALUES
(NULL, 'rgbc', UNIX_TIMESTAMP());
答案 3 :(得分:1)
我会按顺序回答这些问题。
我总是建议使用MySQL的时间函数(即NOW()),因为它可以提供更清晰,更高效的代码。虽然性能差异很小,但在INSERT查询中使用NOW()比使用PHP的date()函数设置变量然后在查询中调用它更简单。
如果您寻求的准确性,请使用InnoDB引擎作为您的数据库。示例结构将是:id(int auto_increment),name(tinytext),password(tinytext),salt(tinytext),registerd_date(DATETIME)。密码和salt列用于使用安全的哈希密码(类似于SHA512)。
在我看来,PHP可能是最简单的。最直接的方法是进行常规注册表单,然后使用NOW()记录注册发生的日期和时间。
大卫