比较blade.php文件中的两个日期[重复]

lo8azlld  于 2023-03-28  发布在  PHP
关注(0)|答案(5)|浏览(201)

此问题在此处已有答案

How to compare two Carbon Timestamps?(4个答案)
3天前关闭。
我必须在list.blade.php中比较两个日期,如
如果今天的日期大于或等于到期日,则执行其他操作。
下面是代码:

@php
use Carbon\Carbon;
$today_date = Carbon::today();
@endphp

@foreach ($entries as $k => $entry)
@if($today_date >= $entry->expire_date)
// do something
@else 
// do something
@endif
@endforeach

日期格式:年-月-日
但这行不通。
请帮帮忙
谢谢

编辑:

我试过这个:

<?php
    use Carbon\Carbon;
    $today_date = Carbon::now();

    foreach ($entries as $k => $entry) {
        $expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);
    }
?>

它会给我这样的错误:image
还有一件事expire_date在我的数据库中是文本类型的,所以这可能是问题所在。

euoag5mw

euoag5mw1#

@php
    use Carbon\Carbon;
    $today_date = Carbon::now();

    foreach ($entries as $k => $entry) {
        $expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);
        $data_difference = $today_date->diffInDays($expire_date, false);  //false param

        if($data_difference > 0) {
            //not expired
        }
        elseif($data_difference < 0) {
            //expired
        } else {
            //today
        }
    }

@endphp

false参数是可选的,它指示您希望返回的值是绝对值还是相对值,如果传入的日期小于当前示例,则可能带有-(负)符号。这将默认为true,返回绝对值。
More here

3qpi33ja

3qpi33ja2#

使用This =〉Carbon::now();
并将日期格式化为您的格式(YYYY-MM-DD)。将该日期存储在var中,并将该var与到期日期进行比较。
today_date格式有问题。
today_date给予日期和时间。

aemubtdh

aemubtdh3#

因为expire_date是文本,所以你需要转换它。幸运的是,使用Carbon,很容易做到:

$expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);

然后你可以用它来比较

@if($today_date->gte($expire_date))

您可能需要确保$expire_date不为null,并且不会首先抛出任何错误。如果您将日期存储在数据库中作为日期或日期时间列,以确保其始终处于正确的格式,这也会更容易,并且您还可以将其作为时间戳添加到模型中,或者将Carbon应用为accessor function

kjthegm6

kjthegm64#

您需要首先格式化Cabon日期对象,以匹配DB数据中的日期(字符串)值。

@if($today_date->format("Y-m-d") >= $entry->expire_date)

它会被打印出来,因为你的PHP标签是错误的..缺少“?”,应该是<?PHP

ergxz8rk

ergxz8rk5#

@php
    use Carbon\Carbon;
    $today_date = Carbon::now();
    @foreach ($entries as $k => $entry)
@if($entry->expire_date < $today_date)
<p> Expired Date </p>
@else
<p> Expired</p>      
</p>
@endif
@endphp

相关问题