使用datetime类型存放时间,时区问题如何解决

发布于 2022-09-04 20:45:54 字数 209 浏览 33 评论 0

数据库有使用 datetime 字段类型记录时间,服务器时区、mysql时区、PHP时区问题该如何设置?

方案一、
所有服务器全部统一使用UTC时区,PHP程序使用UTC时区,写入到数据库的 datetime 类型时间就是 UTC,拿出来再转当地时区。

方案二、
所有服务器的时区随意设置,程序时区随意设置,但是所有涉及时间存储的都使用 int 类型存时间戳。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

黑寡妇 2022-09-11 20:45:54

为啥你不设置你的数据库,php都是Asia/Shanghai这个时区呢。

℉絮湮 2022-09-11 20:45:54

服务器的时区一定要统一。通常我都是在数据库里记录时间戳。因为我觉得搜索起来方便。跨国访问的话。格式化时间戳的时候在进行相应的处理就好了。

浅暮の光 2022-09-11 20:45:54

只推荐使用时间戳

水晶透心 2022-09-11 20:45:54

终于知道为什么时间必须要用时间戳了,原来是因为时区问题。但是laravel中carbon类好像把这个问题解决了,可以随意转换时间格式,当然时间戳性能最强悍,尤其是搜索的时候,int类型效率比datetime要高很多。

故人的歌 2022-09-11 20:45:54

严格来说,不管你处在地球上的哪个地方,任意时间点的时间戳都是相同的。比如1452783600这个时间戳,在巴黎是下午4点在旧金山就是早上7点。这点有利于线上和客户端分布式应用统一追踪时间信息。

且行且努力 2022-09-11 20:45:54

为什么用时间戳?因为它从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,永远相等,即使出现润秒,也并不影响时间戳。

请恋爱 2022-09-11 20:45:54

+8小时,另外所有时间格式最好是用时间戳保存,时间戳不会出现时区问题,时间戳没有时区的概念。
严格来说,不管你处在地球上的哪个地方,任意时间点的时间戳都是相同的。

2022-09-11 20:45:54

1.使用datetime,php/mysql时区设置为UTC+08
2.使用int,直接存时间戳,显示的时候再使用date格式化一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文