我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,
Run Code Online (Sandbox Code Playgroud)
然后我发现需要设置@@session.time_zone不自动检测
那么我们如何解决这个问题?有哪些选项和技术apps可以用于datetime跨国家统一?
如果您希望它代表即时时刻,timestamp则应该将数据类型更改为,而不考虑保存它的时区。始终保存为 UTC,同时表示本地日期和时间,不包含任何区域信息。datetimeTimestampdatetime
有关更多信息,请参阅此问题:应该使用字段“日期时间”还是“时间戳”?