<?php
namespace project1\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use View;
class IndexController extends Controller
{
public function index()
{
$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
return View::make('pages.dashboard.dashboard',['users' => $users]);
}
}
Est-il possible de faire écho au Time Ago dans ma vue (pages.dashboard.dashboard) Quelque chose comme,
{{ $user->created_at->diffForHumans() }}
Attendre une sortie comme,
1 min ago
Essayez d'abord un modèle éloquent.
$users = App\User::orderBy('created_at','desc')->limit(5)->get();
en vue
@foreach($users as $user) {{$user->created_at->diffForHumans()}} @endforeach
En termes pour votre cas
$users = DB::table('users')->orderBy('created_at','desc')->limit(5)->get();
@foreach($users as $user) {{ Carbon\Carbon::parse($user->created_at)->diffForHumans()}} @endforeach
Explication
L'instance le modèle éloquent récupère automatiquement les transtypages vers Carbon et vous pouvez utiliser toutes les méthodes
Dans le cas de la date de la requête DB (created_at) n'est pas une analyse, nous devons donc analyser manuellement.
peut-être que cela vous aiderait
Une belle fonctionnalité semi-cachée des horodatages dans Eloquent est qu'ils ne renvoient pas seulement des chaînes de la base de données - ils retournent en fait une instance de Carbon, une excellente extension de la bibliothèque DateTime de PHP. Cela signifie qu'un tas de fonctions (et je veux dire un tas) sont disponibles directement sur les horodatages de votre modèle. Cela vaut la peine de lire le GitHub README pour voir ce qui est disponible, mais l'une des méthodes les plus cool est diffForHumans (), une petite fonction pratique fournissant le format "il y a longtemps" recherché depuis longtemps nous avons souvent besoin.
$user = User::first();
echo $user->created_at->diffForHumans(); // 2 days ago
$user->touch();
echo $user->created_at->diffForHumans(); // a second ago
Ou
Si created_date est une instance de Carbon\Carbon, vous pouvez faire:
$row->created_date->diffForHumans()
S'il ne s'agit pas d'une instance de Carbon, vous pouvez faire:
(new Carbon\Carbon($row->created_date))->diffForHumans()
Ou vous ajoutez la propriété de modèle à la $dates
liste de transtypage dans le modèle, qui convertira la propriété en une instance Carbon
chaque fois que vous y accéderez (comme $user->created_date
):
class User
{
protected $dates = [
'created_date',
];
}
Les champs created_at
et updated_at
sont automatiquement ajoutés à cette liste de diffusion si $timestamps
d'un modèle est défini sur true
. Aussi deleted_at
sera ajouté si les suppressions progressives sont activées.
écrivez simplement ->diffForHumans();
après votre temps. comme $record->created_date->diffForHumans();