【问题标题】:Laravel and timestamps - is it always a Date column?Laravel 和时间戳 - 它总是一个日期列吗?
【发布时间】:2020-02-10 16:02:16
【问题描述】:

有没有办法让 Laravel timestamps() 将 created_at 作为整数 unix timestamp?这对于记录许多事件及其时间不是更可取吗?如果timestamps 必须有很多条目,可能到毫秒怎么办?

【问题讨论】:

    标签: php mysql sql laravel


    【解决方案1】:

    不,它是预定义的。不过,您可以使用时区制作时间戳。

    当您访问这些值时(使用mutators),Laravel 会将这些值转换为 Carbon 实例,您可以在其中随意格式化它们(包括 unix 格式)。

    $model = Something::first();       // Random model
    $model->created_at                 // Carbon instance
    $model->created_at->unix()         // Unix timestamp
    $model->created_at->getTimestamp() // Same, it's an alias
    

    【讨论】:

    • 实例化一个 Carbon 类变量不是比简单的 time() 慢很多吗?这就是我想知道的性能。不确定引用的时区是什么,通过用户 ip 查找什么?这似乎使它更慢?
    • 理论上是的,但你不会真正注意到差异。您可以说实例化模型类比简单地查询数据库“慢得多”。这是有道理的,但除非服务器来自过去的时代,否则您不会注意到。
    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 2019-03-01
    • 2020-09-24
    相关资源
    最近更新 更多