数据库有使用 datetime 字段类型记录时间,服务器时区、mysql时区、PHP时区问题该如何设置?
方案一、
所有服务器全部统一使用UTC时区,PHP程序使用UTC时区,写入到数据库的 datetime 类型时间就是 UTC,拿出来再转当地时区。
方案二、
所有服务器的时区随意设置,程序时区随意设置,但是所有涉及时间存储的都使用 int 类型存时间戳。
大家讲道理2017-05-16 13:10:23
终于知道为什么时间必须要用时间戳了,原来是因为时区问题。但是laravel中carbon类好像把这个问题解决了,可以随意转换时间格式,当然时间戳性能最强悍,尤其是搜索的时候,int类型效率比datetime要高很多。
伊谢尔伦2017-05-16 13:10:23
严格来说,不管你处在地球上的哪个地方,任意时间点的时间戳都是相同的。比如1452783600这个时间戳,在巴黎是下午4点在旧金山就是早上7点。这点有利于线上和客户端分布式应用统一追踪时间信息。
天蓬老师2017-05-16 13:10:23
+8小时,另外所有时间格式最好是用时间戳保存,时间戳不会出现时区问题,时间戳没有时区的概念。
严格来说,不管你处在地球上的哪个地方,任意时间点的时间戳都是相同的。