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。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 12

看一下数据库表的设计

3年前 评论

@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');
});
3年前 评论
Lonexw

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

3年前 评论

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

3年前 评论
leo

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

3年前 评论

@leo
时间是正常的。

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

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

3年前 评论

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

3年前 评论

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

3年前 评论

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

3年前 评论

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

2年前 评论

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

2年前 评论

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