同一模型中的不同日期访问器

Different date accessors in same Model

我有这个,它可以很好地给我英国格式的日期:

protected $dateFormat = 'd-m-Y';
protected $dates = ['purchased', 'warranty_expires', 'scrapped_on', 'location_date', 'user_date'];

但是,我还创建和修改了(不是标准的 Laravel,而是我自己的)时间戳,而不是日期。如何在检索到这两个字段时将它们的格式自动设置为 'd-m-Y H:i:s'?

我个人不使用 $dateFormat 属性,因为它会更改所有日期字段的格式。我要做的是创建自定义访问器来获取格式化字段,例如:

public function getFormattedPurchasedAttribute($value) {
  return $this->asDateTime($value)->format('d-m-Y H:i:s');
}

因此您现在可以使用 $model-formatted_purchased 以您想要的方式格式化 purchased 字段

您可以使用 Carbon 库来做到这一点

public function getFormattedPurchasedAttribute($date)
{
   return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d-m-Y H:i:s');
}

你必须使用碳class。将此行写在所有名称空间都使用的顶部。

use Carbon;