如何在 Laravel Blade View 上比较 Carbon 中的日期?

How to compare dates in Carbon on Laravel Blade View?

我想比较两个日期 - $dateX(过去的日期时间)和 $currentDatetime(当前的日期时间)。例如:检查 $dateX 是否在 7 天前。使用 Carbon,所有这些都应该在 Laravel Blade Engine 视图中发生。

你能举个例子吗?谢谢!

这个想法可以用 Carbon 轻松实现,所以我假设 $dateX$currentDateTime 都是 Carbon 实例,因此如果你想简单地检查天数的时间差异使用 diffInDays

例如

if( $currentDateTime->diffInDays( $dateX ) > 7 ){
    // do sonething here
}

最后我真的想说 carbon 文档非常清晰易读

首先将这些日期时间放入 carbon 实例中。

@if ($dateX->diffInDays($currentDateTime, false) == 7)
    ...
@endif

Carbon Docs - Difference

您可以使用 diff 进行检查。还要检查日期是否设置在另一个日期之前。

$date1 = \Carbon\Carbon::create(2017, 10, 10);
$date2 = \Carbon\Carbon::create(2017, 10, 20);

$difference = $date1->diff($date2)->days;
$before = $date1 < $date2;

if (before && $difference < 7) {
    //Date 1 more than 7 days before date 2            
}

如果你想知道日期是否早于一周前,你可以这样做:

@if ($dateX < now()->subWeek())

diffInDays() 也可以,但前提是所有 $dateX 天都过去了,而且永远都是。上面的代码更明确。另外,如果您需要更改逻辑怎么办?