web-dev-qa-db-ja.com

CarbonとBladeを使用して2つの日付の差を計算する

Carbonのデフォルトパラメータの代わりに特定の変数を渡す方法を知っている人はいますか?

Carbonのドキュメントには次のように書かれています。

// CARBON SAMPLE

$dtToronto = Carbon::createFromDate(2012, 1, 1, 'America/Toronto');
$dtVancouver = Carbon::createFromDate(2012, 1, 1, 'America/Vancouver');
echo $dtVancouver->diffInHours($dtToronto); // 3

そして、私は私のコントローラーでこのようなことをしたいです:

  // EXAMPLE

  $date = "2016-09-16 11:00:00";
  $datework = Carbon::createFromDate($date);
  $now = Carbon::now();
  $testdate = $datework->diffInDays($now);

そして、Bladeテンプレートでそれを取得します

  // VIEW ON BLADE

  <td> {{ $testdate }} </td>
25
TheDoctor88

Carbon Documentation の例に従っていません。メソッドCarbon::createFromDate()には4つのパラメーターが必要です:yearmonthdayおよびtimezone。そして、フォーマットされた日付文字列を渡そうとしています。

書式設定された日付文字列からCarbonオブジェクトを作成する場合、次のようにクラスのコンストラクターを使用できます。

_$date = "2016-09-17 11:00:00";
$datework = new Carbon($date);
_

または、静的Carbon::parse()メソッドを使用できます。

_$date = "2016-09-17 11:00:00";
$datework = Carbon::parse($date);
_

目的に合わせて、次の完全な例を使用できます。

_$date = Carbon::parse('2016-09-17 11:00:00');
$now = Carbon::now();

$diff = $date->diffInDays($now);
_

そして、Bladeテンプレートで:

_<td> {{ $diff }} </td>
_
44
iivannov

ブレードテンプレート

短いコード

{{ $diff = Carbon\Carbon::parse($data->last_updated)->diffForHumans() }}
.

結果:6分前

4
CodeGuru

コードをクリーンアップして、コメントアウトされたコードを削除することができます:

<td>{{ $diff = Carbon\Carbon::parse($work['date'])->diffForHumans(Carbon\Carbon::now()) }} </td>
4
Stephen S