我在DateTime
数据库中有一个mysql
对象,例如此datetime "2017-08-14 18:06:40"
,而server/mysql
默认时区是美国,所以当我插入datetime
时进入美国时区。
我的问题是,当一个用户说欧洲选择那个日期时间时,会因为时间差异不同而会有所不同吗?
如何解决此问题。我希望欧洲的用户获得相对于他们的时区的日期时间
我从搜索中找到了
CONVERT_TZ(`comment_date`,@@global.time_zone,@@session.time_zone) AS comment_date,
然后我发现您需要设置@@session.time_zone
未自动检测到
那么我们如何解决这个问题以及网站或apps
用于统一国家/地区datetime
的选项和技术有哪些?
答案 0 :(得分:2)
您应该将数据类型更改为timestamp
而不是datetime
,如果您希望它代表即时时刻,而不管保存时间区域。 Timestamp
始终保存为UTC,datetime
表示本地日期和时间,不包含任何区域信息。
有关详细信息,请参阅此问题:Should I use field 'datetime' or 'timestamp'?