как показать метку времени Unix в виде блэйда из поля созданного или обновленного в базе данных laravel? - PullRequest
5 голосов
/ 28 марта 2019

Я хочу получить отметку времени UNIX или преобразовать дату созданного или обновленного значения в формат отметки времени UNIX из полей базы данных (созданного и обновленного) в laravel 5.8, как я могу это сделать?

это мой кодв моем контроллере:

public function viewArchives(){
$data = Archive::select(‘created_at’)->get();
return view(‘view.archives’, compact(‘data’));
}

и в view / archives.blade.php:

<?php echo $data;?>

результат:

{“created_at”:”2019-03-17 19:10:30″}

но я хочу, чтобы результат был таким:

{“created_at”:”1552849830″}

как можно получить этот результат?

Ответы [ 2 ]

1 голос
/ 29 марта 2019
$string = '2019-03-17 19:10:30';

$obj = new stdClass;
$obj->created_at = $string;

$collection = [$obj];

foreach ($collection as $k => &$v) {
    $collection[$k]->created_at = strtotime($v->created_at);
}

//var_dump($collection);

или

$string = '2019-03-17 19:10:30';

$obj = new stdClass;
$obj->created_at = $string;

$collection = [$obj];

array_walk($collection, function (&$item, $key) {
    $item->created_at = strtotime($item->created_at);
});

//var_dump($collection);

Или в вашем случае

    public function viewArchives()
    {
        $data = Archive::select('created_at')->get();
        foreach ($data as $k => &$v) {
            $v->created_at = strtotime($v->created_at);
        }
        return view('view.archives', compact('data'));
    }

или

    public function viewArchives()
    {
        $data = Archive::select('created_at')->get();
        array_walk($data, function (&$item, $key) {
            $item->created_at = strtotime($item->created_at);
        });
        return view('view.archives', compact('data'));
    }

Это хорошее место для использования array_walk() функция.

0 голосов
/ 28 марта 2019

Добавить strtotime () view / archives.blade.php:

<?php echo strtotime( $data );?>
...