Laravel项目修改时区

最近做了一个支付宝支付的应用,现在还在开发过程中,今天早上起床之后先调试了一下项目,模拟支付了一笔(¥9999.00)

2333支付宝的沙箱环境啦,屌丝程序猿哪来这么多钱……

打开Navicat查看数据库的时候,意外发现created_at字段的时间不大对啊,少了8小时,显示凌晨4点创建的支付订单。(没错,我睡到12点才起来的)

然后,首先意识到了PHP的时区配置不对,立即打开Wamp环境查看了一下,timezone是。。。Asia/Shanghai。额,这就很不科学了啊

接下来很自然就想到了Laravel的问题,打开Laravel的/app/config/app.php配置文件,发现里面果然有这么一行:

[
'timezone' => 'UTC',
]

哦好吧,果然是这里的问题。

由于我喜欢配置文件集中管理,并且Laravel不是有一个.env配置文件么,那就好好利用一下吧。

观察配置文件里其他内容发现,有一个env()函数,猜测这个就是从.env中获取配置项value的函数了,不管怎么样,先试一下就对了,试试又不会怀孕嘛……

试着对app.php做了如下改动

[
'timezone' => env('TIMEZONE','UTC'),
]

.env文件中添加一行TIMEZONE=Asia/Shanghai之后,重新创建了一笔交易,用沙箱支付宝支付了一下,诶,可行 -_-

好了,就是这样,Laravel修改时区的教程到此结束,看我啰嗦了这么多,其实也就那两句。

05-06 08:23