【问题标题】:customize the timestamp format Eloquent Models when Storing data in the database在数据库中存储数据时自定义时间戳格式 Eloquent Models
【发布时间】:2016-01-25 06:42:51
【问题描述】:

根据 Laravel Docs 所说:

默认情况下,时间戳的格式为“Y-m-d H:i:s”。如果您需要自定义时间戳格式,请在模型上设置 $dateFormat 属性。该属性决定日期属性在数据库中的存储方式,以及模型序列化为数组或 JSON 时的格式

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * The storage format of the model's date columns.
     *
     * @var string
     */
    protected $dateFormat = 'U';
}

我想将所有 created_atupdated_at 值存储为 整数 unix 时间戳

在不使用 Date Mutators 的情况下,我应该为 protected $dateFormat 变量 设置哪些值?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    我不知道为什么文档告诉将 dateFormat 设置为属性,但这有效:

    protected function getDateFormat()
    {
        return 'U';
    }
    

    【讨论】:

    • 它和protected $dateFormat = 'U'; 做的工作一样。它不是吗?
    【解决方案2】:

    我认为 dateFormat 属性的默认值是 U 导致所有 dateTime 值存储为字符串时间戳 (YYYY-MM-DD HH:MM:SS) 而当我想存储为 integer timeStamp,必须将 protected $dateFormat = 'U'; 添加到所需的模型。 对不起这个粗心。

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 2016-12-12
      • 2014-01-28
      • 1970-01-01
      相关资源
      最近更新 更多