Laravel4 — обработка формата даты между всем приложением и mysql

#php #mysql #laravel #laravel-4

#php #mysql #laravel #laravel-4

Вопрос:

В laravel 4 у меня есть много полей базы данных, которые имеют тип даты и datetime . но мне нужно показывать формат даты, такой как dd / mm / yy H: i: s, как и любой формат, а также обрабатывать формирование даты при вставке и обновлении. Есть ли у них какой-либо способ получить работу в одном месте?

Ответ №1:

Да, вы можете сделать это, создав mutator метод в вашей модели; например, если у вас есть Post модель и date_of_birth свойство, и вы хотите установить дату, yyyy/mm/dd H:i:s но пользователь, вероятно, предоставляет дату в другом формате. В этом случае создайте mutator метод в Post модели следующим образом:

 public function setDateOfBirthAttribute($value)
{
    // value will be the given date by user
    $dt = CarbonCarbon::createFromFormat('Y/m/d H:i:s',$value)->toDateString();
    $this->attributes['date_of_birth'] = $dt;
}
 

Чтобы получить доступ к дате, просто создайте accssor метод, подобный:

 public function getDateOfBirthAttribute()
{
    return CarbonCarbon::createFromFormat('d-m-Y H:i:s', $this->date_of_birth);
}
 

Теперь date_of_birth будет вставлен формат, который вы использовали в mutator методе, и когда вы покажете эту дату, она будет отображаться в формате, который вы использовали в accessor методе. Вы также можете проверить мутаторы даты.

Комментарии:

1. у меня есть created_at в каждой таблице, так что, если бы я мог обрабатывать в одном месте для всех created_at , это было бы легко. любая идея разместить какой-либо код в подобном global.php

2. Эй, я нашел одну идею для обработки, как @WereWolf - The Alpha сказано, но я расширяю модели с помощью общей модели, которая реализована вышеуказанными методами. Большое спасибо

Ответ №2:

Обязательным пакетом для дат является Carbon. Взгляните на документацию на GitHub: https://github.com/briannesbitt/Carbon

Комментарии:

1. Carbon Laravel доступно по умолчанию для каждой даты (, являются экземпляром по умолчанию). created_at deleted-at Carbon