我有一个返回以下日期时间的数组:
$item['created_at'] => "2015-10-28 19:18:44"
如何M d Y
使用 Carbon 在 Laravel 中更改日期格式?
目前它返回错误
$suborder['payment_date'] = $item['created_at']->format('M d Y');
我有一个返回以下日期时间的数组:
$item['created_at'] => "2015-10-28 19:18:44"
如何M d Y
使用 Carbon 在 Laravel 中更改日期格式?
目前它返回错误
$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 6.x 和 7.x 的日期转换
/**
* The attributes that should be cast.
*
* @var array
*/
protected $casts = [
'created_at' => 'datetime:Y-m-d',
'updated_at' => 'datetime:Y-m-d',
'deleted_at' => 'datetime:Y-m-d h:i:s'
];
Laravel 5 很容易在你的 Model 中添加属性protected $dates = ['created_at', 'cached_at']
。在此处查看详细信息https://laravel.com/docs/5.2/eloquent-mutators#date-mutators
日期修改器:Laravel 5.x
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 支持的任何格式。
$suborder['payment_date'] = Carbon::parse($item['created_at'])->format('M d Y');
如果您使用的是 eloquent 模型(通过查看您的代码,我认为您是),您不需要将其转换为数组。只需将其用作对象。因为就像 Thomas Kim 所说,默认情况下它是一个 Carbon 实例
所以应该是
$suborder['payment_date'] = $item->created_at->format('Y-m-d')
但如果不是这样,您需要将其转换为 Carbon 对象作为 Milan Maharjan 的回答
$createdAt = Carbon::parse($item['created_at']);
在模型中声明:
class ModelName extends Model
{
protected $casts = [
'created_at' => 'datetime:d/m/Y', // Change your format
'updated_at' => 'datetime:d/m/Y',
];
只需使用
Carbon::createFromFormat('Y-m-d H:i:s', $item['created_at'])->format('M d Y');
试试看:
$createdAt = Carbon::parse(date_format($item['created_at'],'d/m/Y H:i:s');
$createdAt= $createdAt->format('M d Y');
Laravel 5 时间戳是 Carbon 类的实例,因此您可以直接在时间戳上调用 Carbon 的字符串格式化方法。在你的视图文件中有这样的东西。
{{$task->created_at->toFormattedDateString()}}
只需使用date()
andstrtotime()
功能并节省您的时间
$suborder['payment_date'] = date('d-m-Y', strtotime($item['created_at']));
不要紧张!!!
向模型添加 casts 属性
protected $casts = [
'created_at' => 'date',
'payment_date' => 'date'
];
如果您还想格式化日期时间,只需添加日期时间而不是日期
protected $casts = [
'created_at' => 'datetime',
'payment_date' => 'datetime'
]
我就是这样做的。它还显示上午/下午。
$user->updated_at->format('M, d Y H:i:s A')
如果您使用的是 eloquent,请使用以下命令:
$order->created_at->format('D, M d, Y h:i A')
注意:编辑您自己的格式。
Carbon::parse($item['created_at'])->format('Y m d');