【问题标题】:Laravel 5.2 - How to update "updated_at" field with UTC timestamp?Laravel 5.2 - 如何使用 UTC 时间戳更新“updated_at”字段?
【发布时间】:2017-02-09 09:07:20
【问题描述】:

我正在使用 Laravel 5.2(在 PHP 版本 7 上),下面是我正在运行的更新查询:

$data=DB::table('posts')
                        ->where("id", $post_id)
                        ->update(
                            array(
                                'title'         =>      $request['title'],
                                'body'          =>      $request['body'],
                                'slug'          =>      str_slug($request['title']),
                                'updated_at'    =>      DB::raw('CURRENT_TIMESTAMP')
            ));

使用当前时间更新的“updated_at”字段。但我想用 UTC 时间戳更新它。我怎样才能做到这一点?

【问题讨论】:

  • 你不需要手动设置updated_at的值; Eloquent 会在调用 update() 时为您设置当前的 UTC 时间戳。
  • @MartinBean 我检查了 mysql 的记录,我发现如果我使用 update(),'updated_at' 没有改变。
  • 抱歉,刚刚意识到您使用的是DB 外观,而不是 Eloquent 模型。我会为你的帖子创建一个Post 模型(如果你还没有的话)——它会让你的生活比直接使用数据库模式简单得多。
  • @MartinBean - 您能否发布模型作为您的答案?

标签: laravel-5


【解决方案1】:

如果您使用model->save() 方法,它应该为您处理创建和更新的日期。一般来说,您不需要在 Laravel 中进行原始数据库更新。

如果您希望为此设置不同的时区,请查看 app.php 中的时区设置。但是,默认值为“UTC”,因此您不必担心。

【讨论】:

    猜你喜欢
    • 2014-07-18
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多