在设计数据表的时候,已经通过Navicat工具创建了两个字段,created_at和updated_at。created_at字段默认为CURRENT_TIMESTAMP,updated_at字段默认为ON UPDATE CURRENT_TIMESTAMP;其实Mysql是可以控制created_at字段在创建时的时间作为值,而updated_at字段会根据更新时的时间随之变动。

但是当我们使用Laravel框架来操作数据表的时候,时间却不是依据Mysql的自有功能来设置的,而被Laravel框架给改变了,并且还少了8小时。如果要解决这个,就需要去设置Laravel框架的时区,在配置文件config/app.php中修改:

'timezone' => 'UTC',

只要将上面的UTC改为UTC或Asia/Shanghai

'timezone'='UTC',

设置

'timezone'='Asia/Shanghai',

那么从Laravel框架里的源码得知,Laravel确实是通过PHP代码来更新updated_at,

# vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasTimestamps.php

protected function updateTimestamps(){

$time = $this->freshTimestamp();

if (! is_null(static::UPDATED_AT) && ! $this->isDirty(static::UPDATED_AT)) {

$this->setUpdatedAt($time);

}

if (! $this->exists && ! is_null(static::CREATED_AT) &&

! $this->isDirty(static::CREATED_AT)) {

$this->setCreatedAt($time);

}

}

从以上代码我们就可以得知,只要数据不存在就会设置created_at字段的值,存在与不存在都会去设置updated_at字段。所以将我们数据表设置的自有的机制给覆盖了。如果大家不想使用该功能,可以在模型中去掉Laravel自带的这种功能。只需要在每个模型文件中加上public $timestamps = false;如下:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model{

/**

* 该模型是否被自动维护时间戳

*

* @var bool

*/

public $timestamps = false;

}

#以上代码来源于Laravel文档,https://laravel-china.org/docs/laravel/5.6/eloquent/1403

laravel mysql 时区_Laravel时区设置相关推荐

  1. laravel mysql注入_laravel中如何利用反射实现依赖注入

    依赖注入 在一个类中经常会依赖于其他的对象,先看一下经典的写法 class Foo { public $bar; public function __construct() { $this->b ...

  2. laravel mysql 视图_Laravel框架控制器,视图及模型操作图文详解

    本文实例讲述了Laravel框架控制器,视图及模型操作.分享给大家供大家参考,具体如下: 鉴于上一篇Laravel框架下载,安装及路由操作我们讲到了路由,可能大家会觉得路由这个东西无所不,可路由这个东 ...

  3. laravel mysql驱动_Laravel 如何同时使用不同数据库驱动

    queue配置 首先说明一下我之前的项目中如何使用queue的. 我们现在的项目都是用的symfony,老一点的项目用的symfony1poser/vendor/bin 加入到环境变量中. sourc ...

  4. MYSQL和ORACLE时区设置比较

    MYSQL: 注意时区会影响TIMESTAMP的取值,默认为系统时区为TIME_ZONE=SYSTEM, 动态可以修改 set global  time_zone = '+8:00'; 然后 my.c ...

  5. mysql 时区设定_设置MySQL默认时区

    MySQL默认的时区是UTC时区,比北京时间晚8个小时. 假设日志里面的时间是中午12:00,那么北京时间应该是晚上的8:00点钟. 为方便查看和设置时间,我们要设置MySQL的默认时区,以符合本地使 ...

  6. MySQL中的时区设置

    一.通过Navicat工具,进入mysql数据库,在查询编辑器中输入: 可查看全局的时区设置和会话的时区设置 global.time_zone负责java连接数据库时的时区设置 session.tim ...

  7. mysql安装后记得设置时区

    原文地址:mysql中的CST时区问题_ljj125896的博客-CSDN博客_数据库时区cst 原因: 1.mysql中的CST时区问题 在项目操作过程发现了一个时区的问题,问题现象为sql打印的时 ...

  8. 修改mysql的时间/时区

    # 背景 往db中insert数据发现时间不对,因为是新DB,所以猜测是mysql设置不对 # 解决方法 方法一:通过mysql命令行模式下动态修改 show variables like " ...

  9. 连接mysql报zone时区错误

    连接mysql报zone时区错误 报错信息: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more ...

  10. IntelliJ IDEA连接数据库时报错:服务器返回无效的时区,需要设置 ‘‘serverTimezone‘‘ 属性。

    文章目录 问题描述 报错原因 解决方案 方案1 方案2 方案3 方案4 问题描述 服务器返回无效的时区,需要设置 ''serverTimezone'' 属性. 报错原因 时区无效,需手动进行设置. 解 ...

最新文章

  1. iOS 后台下载及管理库
  2. 2019年上半年收集到的人工智能集成学习干货文章
  3. python朴素贝叶斯调参_邹博机器学习升级版II附讲义、参考书与源码下载(数学 xgboost lda hmm svm)...
  4. scrapy-splash抓取动态数据例子十三
  5. system v和posix的共享内存对比 共享内存位置
  6. shell编程中的select用法
  7. HPU-- 1190 確率
  8. 如果传输的文件过大怎么办
  9. python 对象序列化 pickling_python操作文件——序列化pickling和JSON
  10. 6.6.2赫夫曼编码
  11. FCGF论文阅读笔记
  12. RTT的IPC机制篇——信号
  13. windows 服务实现定时任务调度(Quartz.Net)
  14. kubernetes v1.11 生产环境 二进制部署 全过程
  15. 【数据分析与挖掘(二)】面试题汇总(附答案)
  16. 行列式的计算机应用开题报告,行列式的应用开题报告.docx
  17. 基于 Matlab的录屏软件
  18. 机器学习为什么重要_机器学习:它是如何工作的; 更重要的是,为什么它起作用?...
  19. FPGA时钟篇(三) MRCC和SRCC的区别
  20. 华为HCIP题库和考试相关注意事项

热门文章

  1. 北漂四年,25K,程序员,我依然单身!
  2. C# 经纬度格式化输入控件的简单实现(附html、Qt实现)
  3. linux cat 压缩文件,Linux cat和zcat命令可能比你意识到的更有用
  4. 固件升级(DFU/OTA)
  5. dwg格式转换成jpg图片
  6. 浅谈fiddler抓包工具中自动断点——Before Requests与After Responses断点功能
  7. office_professional_plus_2010安装
  8. numpy之histogram()直方图函数
  9. drools学习笔记-rule组织方式
  10. 一周电子取证行业热点简讯