Рассчитайте разницу между двумя датами с использованием Carbon and Blade
Кто-нибудь знает, как передать заданную переменную вместо параметров 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>
Ответы
Ответ 1
Вы не следуете примеру из углеродной документации. Метод Carbon::createFromDate()
предполагает 4 параметра: год, месяц, день и часовой пояс. И вы пытаетесь передать отформатированную строку даты.
Если вы хотите создать объект 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>
Ответ 2
Ваш код можно очистить и удалить закомментированный код, выполнив:
<td>{{ $diff = Carbon\Carbon::parse($work['date'])->diffForHumans(Carbon\Carbon::now()) }} </td>
Ответ 3
Шаблон лезвия
Более короткий код
{{ $diff = Carbon\Carbon::parse($data->last_updated)->diffForHumans() }}
.
Результат: 6 минут назад