2017-10-18 3 views
0

Je suis un débutant en php, et bien sûr je suis un débutant dans laravel. De toute façon, j'ai un problème. Dans certaines documentations, les gens utilisent "diffForHuman". Malheureusement, je reçois toujours l'erreur 500 quand je l'utilise. Je veux faire un compte de la date/heure comme facebook, ex: "Il y a trois jours", etc.Comment faire une date/heure compter comme facebook (il ya 3 jours, etc)

ceci est mon contrôleur:

public function show(Request $request) 
{ 
if($request->ajax()){ 
     $searchs = $request->get('search'); 
     $search = $searchs['value']; 
     \DB::statement(\DB::raw('set @nomor = 0')); 

     $index = DB::table('tb_jabatan_karyawan') 
       ->leftJoin('tb_jabatan','tb_jabatan.id','=','tb_jabatan_karyawan.id_jabatan') 
       ->leftJoin('tb_karyawan','tb_karyawan.id','=','tb_jabatan_karyawan.id_karyawan') 
       ->select([ 
        \DB::raw('@nomor := @nomor + 1 as no'), 

        'tb_jabatan_karyawan.id as id', 
        'tb_jabatan_karyawan.id_karyawan as id_karyawan', 
        'tb_jabatan_karyawan.id_jabatan as id_jabatan', 
        'tb_karyawan.nama as nama', 
        'tb_karyawan.status_karyawan as status', 
        'tb_jabatan.nama_jabatan as jabatan', 
        'tb_karyawan.tgl_masuk as lama' 
        ]); 
      //dd(Carbon::parse($index->lama)->diffForHumans()); 
     return Datatables::of($index) 
      ->edit_column('no', function($index){ 
       return '<center>'.$index->no.'</center>'; 
      }) 
      ->edit_column('nama', function($index){ 
       return ucwords($index->nama); 
      }) 
      ->edit_column('status', function($index){ 
       return ucwords($index->status); 
      }) 
      ->editColumn('lama', function ($index) { 
      return $index->lama->diffForHumans(); 
      }) 
      ->filter(function ($query) use ($request){ 
       if ($request->get('search')['value']){ 
        $query->where('nama', 'like', "%{$request->get('search')['value']}%"); 
       } 
      }) 
      ->addColumn('action', function($index){ 
       $tag = "<center><a class='btn btn-info btn-xs' onclick=atur('".$index->id_karyawan."','".$index->id_jabatan."')><i class='fa fa-pencil'></i> Proses</a></center>"; 
       return $tag; 
      }) 
     ->make(true); 
    } 

}

et voici mon datatable:

function getData(){ 
table = $('#table').DataTable({ 
    dom: "lBfrtip", 
    processing: true, 
    serverSide: true, 
    destroy: true, 
    bFilter:true, 
    searching: true, 
    order: [], 
    ajax: base_adm+'kelola/pengunduran-karyawan/show', 

    columns: [ 
     {data: 'no', name: 'no', orderable: true, searchable: false}, 
     {data: 'nama', name: 'nama', orderable: true, searchable: true}, 
     {data: 'status', name: 'status', orderable: true, searchable: false}, 
     {data: 'jabatan', name: 'jabatan', orderable: true, searchable: false}, 
     {data: 'lama', name: 'lama', orderable: true, searchable: false}, 
     {data: 'action', name: 'action', orderable: false, searchable: false}, 
    ], 
     "language": { 
     "lengthMenu": " _MENU_ Baris", 
     "zeroRecords": "Data Tidak Tersedia", 
     "info": "Halaman _PAGE_ Dari _PAGES_", 
     "infoEmpty": "Data Tidak Tersedia", 
     "infoFiltered": "(Hasil penyaringan dari _MAX_ total data)", 
     "sSearch": "Pencarian ", 
     "oPaginate": { 
     "sNext" : "Selanjutnya", 
     "sPrevious" : "Sebelumnya", 
    }, 
    }, 
}); 

}

J'espère que quelqu'un va me aider à résoudre ce problème. merci quand même

Répondre

1

Eh bien, votre $index->lama doit être un objet Carbon. Essayez donc \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $index->lama)->diffForHumans(); (en supposant que les dates de votre base de données sont stockées au format "Y-m-d H: i: s")

+0

thx .. cela aide vraiment –