在数据库中为不同时区的用户存储时间



我有一个关于为不同时区的用户存储时间的问题。我的措辞可能会有点复杂,但请原谅我。如果我只是存储时间的用户访问我的web应用程序在UTC到MySql,那么它是可以让我忽略不同的时区?

例如,假设有两个用户生活在世界各地。其中一条说两人在他的时间四点在网络应用上聊天。那么另一个人可能要在她的时间1点进入,这样双方才能成功见面。如果我在Mysql中调用UTC_Time(),当他们每个人都在各自的时间登录到web应用程序时,我会得到一个通用的4:00吗?非常感谢。

您已经进入了一个比较复杂的编程领域。

如果您存储到数据库中的时间是由MySQL中的'now()'派生的,然后将事件存储在正确的时刻,然后使用UTC刻度来测量它。对于国际应用程序来说,哪一个可能是这是正确的做法。

如果一个人只是 '4:00',这个数字不会改变,除非你提供在页面上输入时间的表单,然后可以使用它进行计算。在这种情况下,您可以询问每个用户的时区(例如。一次,在注册时),并计算UTC以保存'4:00',例如'11:00 UTC'。如果另一个用户登录后,您可以从存储的UTC计算他的本地时间。

顺便说一下,如果您使用Linux,您可以使用UTC而不是本地时间运行系统(它仍然会显示本地时间,但是内部时钟使用UTC)。如果您的系统是Windows或双引导系统,请不要这样做。Windows不喜欢系统运行在不同的时区

从MySQL手册:

CONVERT_TZ()从给定的时区转换日期时间值dt将From_tz设置为to_tz给出的时区,并返回结果值

。比如:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
        -> '2004-01-01 13:00:00'

如果您将时间/日期存储为GMT,并且您的朋友注册并选择了'MET'

相关内容

  • 没有找到相关文章