web-dev-qa-db-ja.com

Laravel 5 Carbon形式の日時

次の日付時刻を返す配列があります。

$item['created_at'] => "2015-10-28 19:18:44"

Carbonを使用して、日付をLaravelのM d Y形式に変更するにはどうすればよいですか?

現在、エラーを返します

$suborder['payment_date'] = $item['created_at']->format('M d Y');
25
d3bug3r

最初にcreated_atフィールドをCarbonオブジェクトとして解析します。

$createdAt = Carbon::parse($item['created_at']);

その後、使用することができます

$suborder['payment_date'] = $createdAt->format('M d Y');
29
Milan Maharjan

モデルのLaravel 5プロパティprotected $dates = ['created_at', 'cached_at']を追加するのは簡単です。詳細はこちらをご覧ください https://laravel.com/docs/5.2/eloquent-mutators#date-mutators

例:

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
   /**
   * The attributes that should be mutated to dates.
   *
   * @var array
   */
   protected $dates = ['created_at', 'updated_at', 'deleted_at'];
}

この$user->created_at->format('M d Y');またはPHPがサポートする任意の形式のように日付をフォーマットできます。

27
Sophy

雄弁なモデルを使用している場合(コードを見ると、あなたがいると思います)、それを配列に変換する必要はありません。オブジェクトとして使用するだけです。トーマス・キムが言ったように、デフォルトではCarbonインスタンスだから

だからそれは

$suborder['payment_date'] = $item->created_at->format('Y-m-d')

しかし、そうでない場合は、Milan Maharjanの回答としてCarbonオブジェクトに変換する必要があります

$createdAt = Carbon::parse($item['created_at']);
6
fajarhac

Laravel 5タイムスタンプはCarbonクラスのインスタンスであるため、タイムスタンプでCarbonの文字列フォーマットメソッドを直接呼び出すことができます。ビューファイル内のこのようなもの。

{{$task->created_at->toFormattedDateString()}}

http://carbon.nesbot.com/docs/#api-formatting

4
Tushar

モデルで宣言:

class ModelName extends Model
{      

 protected $casts = [
    'created_at' => 'datetime:d/m/Y', // Change your format
    'updated_at' => 'datetime:d/m/Y',
];
4
Filipe Cruz
$suborder['payment_date'] = Carbon::parse($item['created_at'])->format('M d Y');
3
Sanith

それを試してください:

$createdAt = Carbon::parse(date_format($item['created_at'],'d/m/Y H:i:s');
$createdAt= $createdAt->format('M d Y');
1
li bing zhao