更改 Laravel DataTables 时间格式
Change Laravel DataTables time format
在我的订单 table 中,created_at
列以这种格式保存:Y-m-d H:i:s
但是在数据table中是这样显示的
我将此代码添加到订单模型中:
public function getCreatedAtAttribute($date)
{
return is_null($date)
? ''
: Carbon::createFromFormat('Y-m-d H:i:s', $date)->timezone(config('app.timezone'))->toDateTimeString();
}
public function getUpdatedAtAttribute($date)
{
return is_null($date)
? ''
: Carbon::createFromFormat('Y-m-d H:i:s', $date)->timezone(config('app.timezone'))->toDateTimeString();
}
但在此之后,数据 table 不起作用并且 returns 出现以下错误:
DataTables warning: table id=DataTables_Table_0 - Ajax error. For more information about this error, please see http://datatables.net/tn/7
我该如何解决?
有很多方法可以做到这一点,您可以通过您的控制器来做到这一点:
return Datatables::of($query)
->addColumn('created_at', function ($row){
return $row->created_at->format('d-M-Y');
})
Alternative :Laravel 7 在 Eloquent 模型上使用 toArray 或 toJson 方法时使用新的日期序列化格式。
以前,日期将被序列化为如下格式:
2020-12-02 20:01:00
使用 ISO-8601 格式序列化的日期将显示为:
2020-12-02T20:01:00.283041Z
如果您想继续使用以前的行为,您可以覆盖模型上的 serializeDate()
方法:
use DateTimeInterface;
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
查看官方升级文档here
你可以用 DateTime
$customDate='2020-12-02T20:01:00.283041Z';
$date=new DateTime($customDate);
echo $date->format('y-m-d H:i:s');
在我的订单 table 中,created_at
列以这种格式保存:Y-m-d H:i:s
但是在数据table中是这样显示的
我将此代码添加到订单模型中:
public function getCreatedAtAttribute($date)
{
return is_null($date)
? ''
: Carbon::createFromFormat('Y-m-d H:i:s', $date)->timezone(config('app.timezone'))->toDateTimeString();
}
public function getUpdatedAtAttribute($date)
{
return is_null($date)
? ''
: Carbon::createFromFormat('Y-m-d H:i:s', $date)->timezone(config('app.timezone'))->toDateTimeString();
}
但在此之后,数据 table 不起作用并且 returns 出现以下错误:
DataTables warning: table id=DataTables_Table_0 - Ajax error. For more information about this error, please see http://datatables.net/tn/7
我该如何解决?
有很多方法可以做到这一点,您可以通过您的控制器来做到这一点:
return Datatables::of($query)
->addColumn('created_at', function ($row){
return $row->created_at->format('d-M-Y');
})
Alternative :Laravel 7 在 Eloquent 模型上使用 toArray 或 toJson 方法时使用新的日期序列化格式。 以前,日期将被序列化为如下格式:
2020-12-02 20:01:00
使用 ISO-8601 格式序列化的日期将显示为:
2020-12-02T20:01:00.283041Z
如果您想继续使用以前的行为,您可以覆盖模型上的 serializeDate()
方法:
use DateTimeInterface;
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
查看官方升级文档here
你可以用 DateTime
$customDate='2020-12-02T20:01:00.283041Z';
$date=new DateTime($customDate);
echo $date->format('y-m-d H:i:s');