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 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 12

看一下数据库表的设计

7年前 评论

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

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

7年前 评论

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

7年前 评论
leo

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

7年前 评论

@leo
时间是正常的。

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

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

7年前 评论

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

7年前 评论

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

7年前 评论

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

7年前 评论

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

6年前 评论

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

5年前 评论

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