【发布时间】:2020-02-10 16:02:16
【问题描述】:
有没有办法让 Laravel timestamps() 将 created_at 作为整数 unix timestamp?这对于记录许多事件及其时间不是更可取吗?如果timestamps 必须有很多条目,可能到毫秒怎么办?
【问题讨论】:
有没有办法让 Laravel timestamps() 将 created_at 作为整数 unix timestamp?这对于记录许多事件及其时间不是更可取吗?如果timestamps 必须有很多条目,可能到毫秒怎么办?
【问题讨论】:
不,它是预定义的。不过,您可以使用时区制作时间戳。
$table->timestampsAdds nullable created_at and updated_at TIMESTAMP equivalent columns.
$table->timestampsTzAdds nullable created_at and updated_at TIMESTAMP (with timezone) equivalent columns.
当您访问这些值时(使用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
【讨论】:
time() 慢很多吗?这就是我想知道的性能。不确定引用的时区是什么,通过用户 ip 查找什么?这似乎使它更慢?