php - MySQL:保持服务器时区或用户时区?

标签 php mysql date timezone

我正在考虑在我的站点中存储用户登录日期,但我不知道什么是最合乎逻辑的解决方案。

最初,我虽然使用服务器时区,然后使用服务器机器日期和用户机器日期之间的差异操作来管理它,但我也考虑过使用时区和 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/

相关文章:

php - 如何 : Add Jobs To cron Under Linux or UNIX?

php - .htaccess URL 重写错误 - 在此服务器上找不到请求的 URL

php - 使用 Jquery Tree 插件配置 ul li 标签

MySQL索引问题

java - 计算 Joda Time 的月差

PHP Jabber : if I login and check messages and disconnect, 在其他用户端我将显示为断开连接

php - PDO 连接数据库时出错

mysql 查询速度太慢

java - 无法解析的日期异常

javascript - 更改模板上的日期格式