Eloquent 时间戳 UTC CST

服务器环境centos7 + nginx
时区设置如下图
F5E5.tm_.png


问题描述
使用Eloquent自动维护updated_at, created_at 时,使用的是GTM(UTC),而我要使用(CST)

解决思路
1.改变时间戳的格式,使用Unix时间,输出的时候自动加上8小时的时间戳
2.改变服务器的GTM(UTC)时间,使其与现实的CST一致
3. 使Eloquent自动维护的时候使用CST时间

方案选择
3不解释

过程
一个命令搞定
timedatectl set-local-rtc true

感想
我去,这么简单的问题坑了我一个多小时

images.jpg


参考链接
http://www.361way.com/centos7- ... .html
http://stackoverflow.com/quest ... ing-d
http://www.centoscn.com/Centos ... .html
已邀请:

cuihua - 生如灿烂之花

赞同来自:

发现关闭UTC后问题还是没有解决,估计是Carbon的梗。

cuihua - 生如灿烂之花

赞同来自:

再次深入,发现是系统的问题,通过date +%s 打印当前系统时间戳发现打印的是UTC的时间戳。不论我如何修改时区。

引发的思考
如果一台服务器的用户遍布全球,那么时间戳就应该是使用客户端的而不是服务器的。只是怎么准确获得客户端的时间戳呢?

cuihua - 生如灿烂之花

赞同来自:

最终解决:
Controller.php里面加入
date_default_timezone_set("Asia/Shanghai");

要回复问题请先登录注册