Search code examples
laraveldatetimeeloquentunix-timestamp

how to show unix timestamp in blade view from created_at or updated_at field in database laravel?


I want to get UNIX timestamp or convert created_at or updated_at date to UNIX timestamp format from database fields (created_at and updated_at) in laravel 5.8 , how can i do this?

this is my code in my controller :

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

and in view/archives.blade.php :

<?php echo $data;?>

the result is :

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

but i want the result be like this :

{“created_at”:”1552849830″}

how can get this result?


Solution

  • $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);
    

    or

    $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);
    

    Or in your case

        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'));
        }
    

    or

        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'));
        }
    

    This is good place to use array_walk() function.