Laravel время форматирования - PullRequest
2 голосов
/ 28 февраля 2020

У меня есть некоторые проблемы с получением времени в моем приложении. Я использую laravel API для отправки информации в мое приложение React. У меня есть контроллер вроде:

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, который фактически дает метку времени. Как я могу сделать это время в реальном человеческом формате?

Ответы [ 3 ]

0 голосов
/ 28 февраля 2020

Вы можете добавить атрибут $casts в вашу модель сервера, а Laravel позаботится об остальном.

Завершить модель

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Server extends Model
{
    protected $casts = [
        'vazido' => 'datetime:Y-m-d',
    ];
}
0 голосов
/ 28 февраля 2020

В вашей модели вы можете использовать Eloquent Mutators для форматирования даты следующим образом.

public function getVazidoAttribute($value)
{
     return $value->format('Y-m-d');
} 
0 голосов
/ 28 февраля 2020

По умолчанию метки времени отформатированы как 'Гмд H: i: s'.

Я думаю, что ваш тип столбца int или string . Таким образом, вы можете изменить тип столбца на timestamp или datetime.

$table->datetime('vazido')->change();

. Или вы можете использовать mutator , чтобы преобразовать число в формат даты и времени, добавьте этот метод в ваш Модель сервера:

    public function getVazidoAttribute($value) {
      return \Carbon\Carbon::createFromTimestamp($value)->format('Y-m-d H:i:s');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...