Атрибут dateFormat
Атрибут dateFormat применяется в модели Eloquent и определяет,
в каком формате будут преобразовываться поля типа дата и время
при сериализации модели в массив или JSON. По умолчанию
Laravel использует формат 'Y-m-d H:i:s'.
Синтаксис
<?php
class Model extends Eloquent
{
protected $dateFormat = 'Y-m-d H:i:s';
}
?>
Пример
Давайте изменим формат даты в модели Article:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
protected $dateFormat = 'd.m.Y H:i';
}
?>
Пример
Давайте получим статью и выведем её поля с датой в новом формате:
<?php
use AppModelsArticle;
use IlluminateSupportFacadesRoute;
Route::get('/article', function () {
$article = Article::find(1);
$res = [
'title' => $article->title,
'created_at' => $article->created_at,
'updated_at' => $article->updated_at
];
echo json_encode($res);
});
?>
Результат выполнения кода:
{"title":"article","created_at":"01.01.2026 10:30","updated_at":"01.01.2026 10:30"}
Пример
Давайте применим формат с включением временной зоны:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
protected $dateFormat = 'Y-m-d\TH:i:sP';
}
?>
Теперь при сериализации модели дата будет выводиться в ISO 8601 формате:
<?php
use AppModelsArticle;
use IlluminateSupportFacadesRoute;
Route::get('/article', function () {
$article = Article::find(1);
$res = [
'id' => $article->id,
'title' => $article->title,
'created_at' => $article->created_at
];
echo json_encode($res);
});
?>
Результат выполнения кода:
{"id":1,"title":"article","created_at":"2026-01-01T10:30:00+03:00"}
Пример
Давайте использовать формат только для отображения даты без времени:
<?php
namespace AppModels;
use IlluminateDatabaseEloquentModel;
class Article extends Model
{
protected $dateFormat = 'd.m.Y';
}
?>
Пример получения данных:
<?php
use AppModelsArticle;
use IlluminateSupportFacadesRoute;
Route::get('/articles', function () {
$articles = Article::all();
$res = [];
foreach ($articles as $article) {
$res[] = [
'title' => $article->title,
'date' => $article->created_at
];
}
echo json_encode($res);
});
?>
Результат выполнения кода:
[{"title":"article 1","date":"01.01.2026"},{"title":"article 2","date":"02.01.2026"},{"title":"article 3","date":"03.01.2026"}]
Смотрите также
-
атрибут
casts,
который позволяет преобразовывать любые поля модели -
атрибут
timestamps,
который управляет автоматическим заполнением полей времени -
поле
dateTime,
которое используется для создания поля с датой и временем -
поле
timestamp,
которое создаёт поле для хранения временных меток