Формат даты 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. Затем дополните вашу модель этой базовой моделью, и все даты будут отображаться в вашем собственном формате.
Я надеюсь, вам понравится это открытие...