У меня есть массив, который возвращает следующее время:
$item['created_at'] => "2015-10-28 19:18:44"
Как в laravel, используя формат углерода в этом формате M d Y
В настоящее время этот метод возвращает ошибку
$suborder['payment_date'] = $item['created_at']->format('M d Y');
Благодаря!!
Сначала проанализируйте поле created_at как объект Carbon.
$createdAt = Carbon::parse($item['created_at']);
Затем вы можете использовать
$suborder['payment_date'] = $createdAt->format('M d Y');
Легко для Laravel 5 в вашем свойстве добавить свойство свойство protected $dates = ['created_at', 'cached_at']
. Подробнее см. Здесь https://laravel.com/docs/5.2/eloquent-mutators#date-mutators
Пример:
namespace App; use Illuminate\Database\Eloquent\Model; class User extends Model { /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = ['created_at', 'updated_at', 'deleted_at']; }
Вы можете форматировать дату, как этот формат $user->created_at->format('M d Y');
или любой формат, поддерживаемый PHP.
Если вы используете красноречивую модель (глядя на ваш код, я думаю, что вы есть), вам не нужно преобразовывать его в массив. Просто используйте его как объект. Becaus elike Томас Ким сказал, что по умолчанию это экземпляр Carbon
Так что это должно быть
$suborder['payment_date'] = $item->created_at->format('Ym-d')
Но если это не так, вам нужно преобразовать его в объект Carbon, как ответ Милана Махарджана
$createdAt = Carbon::parse($item['created_at']);
Попробуй это:
$createdAt = Carbon::parse(date_format($item['created_at'],'d/m/YH:i:s'); $createdAt= $createdAt->format('M d Y');
$suborder['payment_date'] = Carbon::parse($item['created_at'])->format('M d Y');
Временные метки Laravel 5 являются экземплярами класса Carbon, поэтому вы можете напрямую называть метод форматирования строк Carbon на своих временных отметках. Что-то вроде этого в вашем файле вида.
{{$task->created_at->toFormattedDateString()}}