我正在考虑在我的站点中存储用户登录日期,但我不知道什么是最合乎逻辑的解决方案。
最初,我虽然使用服务器时区,然后使用服务器机器日期和用户机器日期之间的差异操作来管理它,但我也考虑过使用时区和 php 类日期直接更改它,所以:
<?php
// my server has for example America/New_York timezone
$user_timezone = "Europe/Rome";
date_default_timezone_set ($user_timezone);
$date = date ('Y-m-d H:i:s');
$sql = "UPDATE users SET user_last_modify = '$date', user_timezone = '$user_timezone' WHERE user_id = 'some id' LIMIT 1;";
$res = mysql_query ($sql);
?>
我的问题是,最好的解决方案是什么,保留服务器时区还是使用用户时区?
如果我使用用户时区,我是否也应该像示例中那样保存时区名称?
最佳答案
我建议使用服务器时区或 UTC,而不是为每个用户存储不同的数据。这样,您的数据库将完全一致,并且您可以执行一些操作,例如比较,而不必为每个条目获取 user_timezone 列并执行转换(这不是完全免费的)
关于php - MySQL:保持服务器时区或用户时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1852223/