web-dev-qa-db-fra.com

Calculer la différence entre deux dates en utilisant Carbon et Blade

Est-ce que quelqu'un sait comment passer une variable donnée à la place des paramètres par défaut du Carbon?

La documentation de Carbon dit:

// CARBON SAMPLE

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

Et je veux faire quelque chose comme ça dans mon contrôleur:

  // EXAMPLE

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

Et récupérer cela sur un modèle de lame

  // VIEW ON BLADE

  <td> {{ $testdate }} </td>
13
Marko

Vous ne suivez pas l'exemple de Carbon Documentation . La méthode Carbon::createFromDate() attend 4 paramètres: year, month, day et timezone. Et vous essayez de passer une chaîne de date formatée.

Si vous voulez créer un objet Carbon à partir d'une chaîne de date formatée, vous pouvez utiliser le constructeur de la classe comme suit:

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

Ou vous pouvez utiliser la méthode statique Carbon::parse():

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

Pour vos besoins, vous pouvez utiliser le présent exemple complet:

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

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

Et ensuite dans votre modèle de lame:

<td> {{ $diff }} </td>
22
iivannov

Modèle de lame 

Un code plus court

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

Résultat: il y a 6 minutes

1
CodeGuru

Votre code peut être nettoyé et le code mis en commentaire supprimé en procédant comme suit:

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