Laravel:将日期时间到现在的时间戳设置为int

问题描述 投票:1回答:1

我正在创建一个Laravel应用程序。之前我曾经使用created_at和updated_at的datetime数据类型设计数据库,但我的一个朋友建议我应该使用timestamp而不是datetime,因为它适用于不同的时区。

使用时间戳而不是日期时间格式是一个好主意吗?会有任何性能问题吗?如果为“否”,那么我们如何在laravel应用程序中全局更改时间戳的默认格式从datetime到timestamp。

例如(默认):

$model->created_at = "yyyy-mm-dd h:i-s";
$model->updated_at = "yyyy-mm-dd h:i-s";

整数时间戳:

$model->created_at = 1523246567;
$model->updated_at = 1523246567;
laravel timestamp default unix-timestamp
1个回答
1
投票

不幸的是,我无法解答您的前两个问题,但Laravel确实提供了一种简单的方法来更改日期存储的格式。

Date Mutators文档说可以在你的模型上设置$dateFormat属性,如下所示:

/**
 * The storage format of the model's date columns.
 *
 * @var string
 */
protected $dateFormat = 'U';

'U'格式将是“自Unix时代以来的秒数”。 php date documentation提供更多格式。

您还需要更改模型的迁移。用$table->timestamps();$table->unsignedInteger('created_at');替换$table->unsignedInteger('updated_at');

要使用“全局”特定日期格式,即对于所有模型,您可以在基本模型上设置日期格式,并让所有模型继承该模型,或使用特征。有关示例,请参阅this question

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.