【问题标题】:Save integer timestamp to timestamp field in laravel将整数时间戳保存到 laravel 中的时间戳字段
【发布时间】:2020-12-12 11:35:12
【问题描述】:

我正在使用Laravel Framework 6.16.0,并且在我的迁移中包含以下字段:

$table->timestamp('trx_timestamp', 0)->nullable($value = true);

通过我的 API,我通过以下方式获取该字段:

目前,我只是简单地保存它而不转换它。但是,这确实会在我的数据库中产生 0000-00-00 00:00:00 值。

任何建议我做错了什么?

【问题讨论】:

标签: laravel eloquent


【解决方案1】:

如果您希望将数据(当前为时间戳)保存为日期时间,请将其转换并保存。你可以这样做。

$date = Carbon::createFromTimestamp($timeStamp)->format('M d Y');

或者

$date = Carbon::parse($timeStamp)->format('M d Y');

检查 carbon 包,它在处理日期时间时非常有用。

【讨论】:

    【解决方案2】:

    作为对this post 的引用,如果您需要存储 unix 时间戳,则需要一个整数列。

    在迁移文件中,您可以将列定义为

    $table->integer('trx_timestamp');
    

    如果您需要格式化日期,您可以从Mutators 中受益,并在您的模型中定义一个访问器为

    class YourModel extends Model
    {
        /**
         * Get formatted trx_timestamp.
         *
         * @param  int $value
         * @return string
         */
        public function getTrxTimestampAttribute($value)
        {
            return Carbon::createFromTimestamp($value)->toDateTimeString();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 2011-07-20
      • 1970-01-01
      • 2015-03-09
      • 2018-06-22
      • 2016-11-27
      相关资源
      最近更新 更多