使用 Carbon 和 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>

原文由 user5120193 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 694
2 个回答

您没有遵循 Carbon 文档 中的示例。方法 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>

原文由 iivannov 发布,翻译遵循 CC BY-SA 4.0 许可协议

刀片模板

更短的代码

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

结果 : 6 分钟前

原文由 CodeGuru 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题