created_at 时间比实际时间少 16 小时,但 updated_at 时间却是正确的

今天遇到一个特别奇怪的现象:

当创建一条新记录时,created_atupdated_at 时间比实际时间少16个小时,但是,当更新记录时updated_at 时间却是正常的.

环境

阿里云,php7.0.14+mariadb+nginx+php-fpm

现象

当创建一条新记录时,created_atupdated_at 时间比实际时间少16个小时,但是,更新或删除时updated_atdeleted_at 时间却是正常的。服务器中有3套 laravel ,其它2套时间都正常,出问题的这套刚好使用的 repository 。

做过的尝试

1、将出问题的数据库删除并重新创建,问题依然存在 。
2、登录服务器通过命令行查看了 mariadb 系统时间,正常。
3、将 repository 换成传统的 Model 直接操作,问题依然存在。

请问大家有没有遇到同样的情况?

感谢!

Coding My Life。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

看一下数据库表的设计

8年前 评论

@ihuanran

Schema::create('posts', function (Blueprint $table) {
            $table->increments('id');
            $table->string('tid', 32);
            $table->string('type', 32)->default('test');
            $table->string('file_post');
            $table->string('file_zip')->nullable();
            $table->string('title');
            $table->string('author')->nullable();
            $table->tinyInteger('status')->default(0);
            $table->softDeletes();
            $table->timestamps();

            $table->index('tid');
            $table->index('status');
});
8年前 评论
Lonexw

我觉得肯定是自己代码的问题 :)

8年前 评论

@JobsLong created_at 不是 laravel 自动维护的吗?我代码里面没有进行任何关于 created_at 的操作。

8年前 评论
leo

php artisan tinker进入交互模式,试试Carbon\Carbon::now()看看输出的时间是什么

8年前 评论

@leo
时间是正常的。

 Carbon\Carbon {#747
     +"date": "2017-01-04 13:50:16.000000",
     +"timezone_type": 3,
     +"timezone": "Asia/Shanghai",
   }
8年前 评论

@yansongda 试一下在工具上用SQL插入看有没问题

8年前 评论

@ihuanran 直接在 pma 上插入一条数据,并在 created_at 上写明 2017-01-04 13:50:16 是没有问题的。就像更新数据时 laravel 自动更新 updated_at 字段一样。

8年前 评论

@yansongda 那就是代码有问题了,虽然我也不知道是什么问题

8年前 评论

@ihuanran 感谢关注与支持,打算重新从头开始搞一个测试程序看看结果怎样

8年前 评论

时间输出怎么格式化,还有用$table->dateTime('created_at');不用$table->timestamps(); 怎么样laravel对时间自动维护

7年前 评论

我也遇到这个问题了,结果是服务器时间慢了 :joy: :joy: :joy: :joy: :joy: :joy:

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!