Формат даты Laravel 4 Carbon изменяется только один раз

Здравствуйте, я использую Laravel 4 для страницы приложения, мне нравятся углеродные функции даты, но у меня проблема с форматом даты. у меня есть формат даты что-то вроде:

dd/mm/yyyy

И я использую:

\Carbon\Carbon::createFromTimeStamp(strtotime(Auth::user()->created_at))->diffForHumans() 

чтобы показать, сколько лет его что-то, но это прекрасно работает, когда формат даты его

yyy-mm-dd

Как я могу изменить только один раз формат даты, а не каждый раз.

3 ответа

Решение

Вы можете попробовать это:

$date = Auth::user()->created_at;
\Carbon\Carbon::createFromFormat('d/m/Y', $date)->diffForHumans();

Also you may try this (if you want to use createFromTimeStamp метод):

$date = str_replace('/', '-', Auth::user()->created_at);
\Carbon\Carbon::createFromTimeStamp(strtotime($date))->diffForHumans();

Вы можете создать Accessor, который будет использоваться всякий раз, когда вы делаете эхо $user->created_at:

public function getCreatedAtAttribute($attr)
{
    return Carbon::parse($attr)->diffForHumans();
}

Подробнее о средствах доступа: http://laravel.com/docs/eloquent

Вы даже можете поместить это в класс BaseModel и сделать так, чтобы все ваши Модели расширяли базовый класс, чтобы автоматически преобразовывать все свойства made_at в указанный вами формат даты.

Более простая глобальная настройка формата даты в Laravel 4: проверьте эту ссылку

На самом деле, это очень легко глобально изменить формат даты, используя библиотеку Carbon. Все, что вам нужно сделать, это создать файл BaseModel.php в папке модели, а затем добавить методы для атрибутов Created_At и updated_at -> set. Затем дополните вашу модель этой базовой моделью, и все даты будут отображаться в вашем собственном формате.

Я надеюсь, вам понравится это открытие...

Другие вопросы по тегам