一、源起
在PHP程序设计中,我们时常需要获取到当前时间,但是在CodeIgniter4(以下简称CI4)中默认时间是 America/Chicago 。
那么这样就很蛋疼了,使用以下代码
代码语言:php复制echo date('Y-m-d H:i:s');
输出的是(Chicago是西6区)
代码语言:html复制2022-01-11 21:06:25
但实际东八区是
代码语言:txt复制2022-01-12 11:06:25
二、解决过程
在网上冲浪,找到两种方法,我觉着都比较麻烦,但是可以总结一手
方法一
在php.ini中找到data.timezone=去掉它前面的;号,然后设置data.timezone= “Asia/Shanghai”。
方法二
在用date()函数前之前加一行
代码语言:php复制date_default_timezone_set("Asia/Shanghai");
三、个人觉得在CI4中更好的办法
上面提及的两种办法,我都觉得有点麻烦,
方法一如果在配新环境的时候忘记了,那输出或者存进数据库的数据就完蛋了。
方法二的话在用之前加那一行,在代码编写的时候就比较麻烦。
但在CI4中,可以在.env文件中加一行,就能解决
代码语言:txt复制app.appTimezone = "Asia/Shanghai"
四、写在最后
CI4这个框架和PHP我了解的都不算太多,但是一番搜索下来关于CI4的文章还是比较少,甚至于对于这个时区的问题基本没有介绍,那么就打算写下这篇文章来给未来的同学在遇到这个问题的时候可以少走些弯路,我们共同进步。