Php 拉威尔格式时间
我在我的应用程序上获取时间时遇到一些问题。我正在使用LaravelAPI向我的React应用程序发送信息。 我有这样的控制器:Php 拉威尔格式时间,php,laravel,Php,Laravel,我在我的应用程序上获取时间时遇到一些问题。我正在使用LaravelAPI向我的React应用程序发送信息。 我有这样的控制器: public function index(){ $user = auth()->user(); $servers = Server::where('clientid', $user->id) ->orderBy('id', 'desc') ->take
public function index(){
$user = auth()->user();
$servers = Server::where('clientid', $user->id)
->orderBy('id', 'desc')
->take(10)
->get();
if ($user) {
$reposne['result'] = true;
$reposne['servers'] = $servers;
} else {
return response()->json(['error' => 'Unauthorized'], 401);
}
return $reposne;
}
它成功地返回了我需要的东西,比如:
{
"result": true,
"servers": [
{
"id": 2512,
"clientid": 4,
"boxid": 23,
"ipid": 60,
"vazido": 1584355476,
"created_at": null,
"updated_at": null,
"status": "Active"
}
]
}
但正如您所看到的,vazido
列实际上给出了一个时间戳。我怎样才能把这段时间变成真正的人类形式
默认情况下,时间戳的格式为“Y-m-dh:i:s”
我认为您的列类型是int或string。因此,您可以将列类型更改为timestamp
或datetime
$table->datetime('vazido')->change();
或者,您可以使用将数字转换为日期时间格式,将此方法添加到您的服务器型号:
公共函数getVazidoAttribute($value){
return\Carbon\Carbon::createFromTimestamp($value)->格式('Y-m-dh:i:s');
}
您可以在您的服务器模型中添加一个$casts
属性,Laravel将为您处理其余部分
服务器型号
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Server extends Model
{
protected $casts = [
'vazido' => 'datetime:Y-m-d',
];
}
在您的模型中,您可以使用格式化日期,如下所示
public function getVazidoAttribute($value)
{
return $value->format('Y-m-d');
}
您的mysql中此列的类型是什么