@小鱼鱼大仙人 上面的回复是可行的。config/app.php
'timezone' => env('TIME_ZOME', 'UTC')
config/database.php
.
.
.
'mysql' => [
'driver' => 'mysql',
'timezone' => env('DB_TIMEZONE','+00:00'),
.
.
.
]
.env
配置文件里加入
TIME_ZOME=PRC
DB_TIMEZONE=+08:00
出现这种情况是你的数据库时区和你系统时区不一致导致的,你可以修改数据库时区,也可以修改 app/database.php
配置
return [
'connections' => [
'mysql' => [
'timezone' => '+08:00',
],
],
],
@小鱼鱼大仙人 上面的回复是可行的。config/app.php
'timezone' => env('TIME_ZOME', 'UTC')
config/database.php
.
.
.
'mysql' => [
'driver' => 'mysql',
'timezone' => env('DB_TIMEZONE','+00:00'),
.
.
.
]
.env
配置文件里加入
TIME_ZOME=PRC
DB_TIMEZONE=+08:00
给.env
文件里面加一个 DB_TIMEZONE=+08:00
#DB_HOST=127.0.0.1
#DB_PORT=3306
#DB_DATABASE=forge
#DB_USERNAME=root
#DB_PASSWORD=123456
DB_TIMEZONE=+08:00
就好了,目前我觉得最简单的方法
Laravel 5.8中修改config/app.php中的timezone, 'timezone' => 'PRC'即可。
如果需要更改服务器时间,虚拟机中输入:dpkg-reconfigure tzdata,选择Asia/Shanghai就好了
最好还是再改下mysql时区配置:
先看下mysql时区是否正确:
SELECT NOW();
不正确再改!
ubuntu apt 安装的mysql,其他你猜怎么改
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下加上
default-time_zone = '+8:00'
重启mysql服务,当然线上别这样搞
sudo service mysql restart
按照上面的做法自己试了一遍,我把上面的方法总结一下
-
在.env文件中新增两行
DB_TIMEZONE=+08:00
TIME_ZONE=PRC
一个是mysql数据库的时区,一个是php的时区 -
修改config/app.php如下这一行,目的是读取步骤一中.env文件中的设置
'timezone' => env('TIME_ZONE','UTC'), -
在config/database.php中的mysql下添加这一行
'timezone' =>env('DB_TIMEZONE','+00:00'), -
修改完成后退出tinker,重新进入tinker ,修改数据,updated_at就是中国时区了
-
最后git中提交记录 git add -A git commit -m '设置时区'
推荐文章: