为不同时区的用户在数据库中存储时间
这个问题在这里已经有了答案:
您已经登陆了其中一个更复杂的编程领域。
如果您存储到您的数据库的时间是从MySQL中的'now()'派生的,那么您将在正确的时间存储事件,并使用UTC时间刻度来度量它。 对于国际应用来说,这可能是正确的选择。
如果一个人只是说'4点',这个号码不会改变,除非你在页面上提供一个表格输入时间,然后可以用于计算。 在这种情况下,您可以询问每个用户的时区(例如注册时的一次),并计算UTC以保存'4:00',比如'11:00 UTC'。 如果其他用户登录,则可以从存储的UTC计算他的本地时间。
顺便说一下,如果您使用Linux,则可以使用UTC(而不是本地时间)运行系统(它仍将显示本地时间,但内部时钟运行在UTC)。 如果您的系统是Windows或双引导,请勿执行此操作。 Windows不喜欢在不同时区运行的系统。
从MySQL手册:
CONVERT_TZ()将来自from_tz给出的时区的日期时间值dt转换为to_tz给出的时区,并返回结果值
即像是:
SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
-> '2004-01-01 13:00:00'
如果您将时间/日期存储为GMT,并且您的朋友注册并选择了“MET”
链接地址: http://www.djcxy.com/p/29337.html上一篇: storing time in database for users in different time zones