一尘不染

MySQL:保留服务器时区还是用户时区?

mysql

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

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

我的问题是,最好的解决方案是保留服务器时区还是使用用户时区?
如果我使用用户时区,是否也应像示例中那样保存时区名称?


阅读 249

收藏
2020-05-17

共1个答案

一尘不染

我建议使用服务器时区或UTC,而不是为每个用户存储不同的数据。这样,您的数据库将完全一致,并且您可以执行一些操作(例如比较),而不必为每个条目获取
user_timezone 列并执行转换(这不是完全免费的)

2020-05-17