2016-05-10 28 views
7

Ich habe etwas Problem dort ich möchte das Datumsformat ändern. dies meiner Ansicht nach: Ändern Datumsformat Laravel 5

@foreach ($posts as $post) 
        <tr> 
         <td> 
         <?php echo $post->id?> 
         </td> 
         <td class="mailbox-star"><?php echo $post->nama?></td> 
         <td class="mailbox-name"><?php echo $post->tanggal?></td> 
         <td class="mailbox-subject"><?php echo $post->deskripsi?></td> 
         <td class="mailbox-date"><?php echo $post->mulai?> - <?php echo $post->durasi?></td> 
         <td class="mailbox-date"><?php echo $post->total?> Jam</td> 
         <td class="mailbox-date"> 
         <a href="<?php echo url('user/detail/'.$post->nama)?>" class="btn btn-xs btn-danger"><i class="fa fa-search-plus"></i></a> 
         <a href="<?php echo url('user/edit/'.$post->id)?>" class="btn btn-xs btn-success"><i class="fa fa-pencil-square-o"></i></a> 
         <a href="<?php echo url('user/delete/'.$post->id) ?>" class="btn btn-xs btn-warning"><i class="fa fa-times"></i></a> 
         </td> 
        </tr> 
        @endforeach 

und mein Controller:

public function getIndex() 
    { 
     $posts = DB::table("lembur_karyawan") 
     ->orderBy('id', 'desc') 
     ->paginate(6); 

     return view('user',['posts'=>$posts]); 
    } 

dies meiner Meinung nach, und was ich tun möchte:

enter image description here

Wenn mir jemand sagt, ich solle Carbon verwenden, erklären Sie bitte, wie man es benutzt?

NB: Ich benutze Laravel 5.1

+1

Sie 'date verwenden können ('Y-m-d')' von PHP. –

+0

'$ Post-> Tanggal' soll Datum enthalten oder? und du machst vielleicht Echo in Foreach. –

+0

ja. aber ich bekomme Fehler, wenn ich das Datumsformat von PHP verwende. würdest du erklären, wie man es benutzt? –

Antwort

10

Try this:

<?php echo date('d F Y', strtotime($post->tanggal)); ?> 

Wo

  • d - Der Tag des Monats (01-31)
  • F - A Volltext Darstellung eines Monats (Januar bis Dezember)
  • Y - Eine vierstellige Darstellung eines Jahres
+0

danke für die Zeit und beste Antwort. jetzt ist es gelöst. –

+0

@ivansetiadi, froh, dass es dir geholfen hat :). – prava

5

Wenn Sie Eloquent nutzen könnten, könnten Sie werfen automatisch die Spalte zu einem Carbon-Date-Objekt.

Sie benötigen ein Post Modell und müssten sicherstellen, dass Sie tanggal in die Spalten eingefügt haben, die in Daten umgewandelt werden.

class Post extends Model { 

    protected $dates = ['tanggal']; 

Dann wird Laravel das Datum automatisch in ein Carbon-Objekt konvertieren, das Ihnen Zugriff auf alle möglichen praktischen Funktionen bietet.

Dann geben Sie in Ihrer Ansicht einfach das Datum in dem Format, das Sie suchen.

$post -> tanggal -> format('d m Y'); 

Sie können mehr über die hilfreiche Methoden Kohlenstoff lesen gibt Ihnen hier: http://carbon.nesbot.com/docs/

Und Sie können, was verschiedene Buchstaben im Argument format tun hier bestanden herauszufinden: http://php.net/manual/en/function.date.php

+1

Dies sollte die richtige Antwort sein. Es ist der richtige Weg, um das Datum in Laravel +1 zu manipulieren. Danke @ matt-mcdonald. –

6

Es ist besser, php Carbon Datumsformat in der Ansichtsdatei zu verwenden.

Wenn <?php echo $post->tanggal?> ist, welche das Datum wird dann:

Dies funktioniert:

<?php echo Carbon\Carbon::createFromFormat('Y-m-d', $post->tanggal)->format('d M Y') ?>

Die oben genannten Erträge die gleiche Ausgabe wie Sie wollen.

Wenn Sie das Format weiter ändern möchten. Dann könnte dies link helfen.

Carbon wird von der PHP DateTime-Klasse geerbt. Also, wenn Sie Laravel verwenden, empfehle ich Ihnen Carbon zu verwenden.

7
//replace 
<td class="mailbox-name"><?php echo $post->tanggal?></td> 
//to 
<td class="mailbox-name"><?php echo date('d M Y',strtotime($post->tanggal)); ?></td> 
5

dies wird zu 100 Prozent lösen Ihr Problem

{{ date('jS F Y',strtotime($post->tanggal)) }}