У меня есть это, и это хорошо работает, чтобы дать мне даты в британском формате:
protected $dateFormat = 'd-m-Y';
protected $dates = ['purchased', 'warranty_expires', 'scrapped_on', 'location_date', 'user_date'];
Тем не менее, я также создал и изменил (не стандартные Laravel, а мои собственные) метки времени, а не даты. Как я могу автоматизировать форматирование этих двух полей при получении, например, «d-m-Y H: i: s»?
Вы можете сделать это с помощью библиотеки углерода
public function getFormattedPurchasedAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('d-m-Y H:i:s');
}
Вы должны использовать класс углерода. Напишите эту строку в верхней части, где используется все пространство имен.
use Carbon;
Лично я не пользуюсь $dateFormat
атрибут, потому что он изменяет формат для всех полей дат. Я хотел бы создать собственные средства доступа для получения отформатированных полей, например:
public function getFormattedPurchasedAttribute($value) {
return $this->asDateTime($value)->format('d-m-Y H:i:s');
}
так что теперь вы можете использовать $model-formatted_purchased
получить purchased
поле отформатировано так, как вы хотите