PHP/MySQL中时区间的保存和转换

PHP/MySQL中时区间的保存和转换,php,mysql,Php,Mysql,我正在使用PHP/MySQL为我的web应用程序创建一个数据库。我试图保护用户的时区(用户A)及其各自数据库表字段中的条目,PHP timezone_identifiers_list()函数在提供允许用户这样做的不同时区方面非常有用。用户B在查询此数据时需要将数据转换为他/她自己的时区。对于此转换,我面临两个选择: 在MySQL上转换:我可以使用CONVERT_TZ('2017-02-01 20:00:00'、'+00:00'、'+01:00'),但该函数不支持say:CONVERT_TZ('2

我正在使用PHP/MySQL为我的web应用程序创建一个数据库。我试图保护用户的时区(用户A)及其各自数据库表字段中的条目,PHP timezone_identifiers_list()函数在提供允许用户这样做的不同时区方面非常有用。用户B在查询此数据时需要将数据转换为他/她自己的时区。对于此转换,我面临两个选择:

  • 在MySQL上转换:我可以使用CONVERT_TZ('2017-02-01 20:00:00'、'+00:00'、'+01:00'),但该函数不支持say:CONVERT_TZ('2017-02-01 20:00:00'、'Africa/Accra'、'Africa/Duala'),而时区_标识符_list()只返回'Africa/Accra'之类的数据,这不是一个好的选择
  • PHP转换:考虑到用户A的数据将被循环,以便在每个数据行中进行转换,我仍然对使用PHP进行转换犹豫不决

  • 我想知道是否有更好的转换方法。

    最佳做法是将服务器和PHP应用程序配置为使用UTC时区,并且从不进行任何转换


    时区配置附加到每个用户,在每个用户的浏览器中自动配置更好,因此您可以利用前端应用程序中的工具。

    最佳做法是将服务器和PHP应用程序配置为使用UTC时区,并且从不进行任何转换


    时区配置附加到每个用户,在每个用户的浏览器中自动配置更好,因此您可以利用前端应用程序中的工具。

    这是基于意见的。所以用PHP做吧!:-)确保将其保存在universal time中,并确保使用php datetime对象构建它。通过为datetime对象提供本地时区,可以在访问者浏览器中定义本地时间。参见链接:这是基于意见的。所以用PHP做吧!:-)确保将其保存在universal time中,并确保使用php datetime对象构建它。通过为datetime对象提供本地时区,可以在访问者浏览器中定义本地时间。请参阅链接:我在共享服务器上,不想设置全局时区。我不太擅长数据库管理,但这正是我的目标(如果我在我的描述中表达MySQL漏洞,请原谅)。我不想依赖服务器的会话时区,但通过HTML5 time inout字段获取用户A的日期,并将其与用户A选择的时区一起保存,当用户B查询数据库时,用户B的时区将转换为用户A的时区。因此,用户A的时间更多的是常量,两个时区(用户A和B的时区)是变量。我在共享服务器上,不想设置全局时区。我不太擅长数据库管理,但这正是我的目标(如果我在我的描述中表达MySQL漏洞,请原谅)。我不想依赖服务器的会话时区,但通过HTML5 time inout字段获取用户A的日期,并将其与用户A选择的时区一起保存,当用户B查询数据库时,用户B的时区将转换为用户A的时区。因此,用户A的时间更多的是常数,两个时区(用户A和B的时区)是变量