比较 blade.php 文件中的两个日期
Comparing two dates in blade.php file
我必须比较 list.blade.php 中的两个日期,例如
if today's date is greater than or equal to expiry date then do something else do something.
代码如下:
@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
Date format: YYYY-MM-DD
但这不起作用。
请帮忙
谢谢
编辑:
我试过这个:
<?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
是我数据库中的文本类型,所以这可能是问题所在。
使用这个 => Carbon::now();
并将您的日期设置为您的格式 (YYYY-MM-DD)。将该日期存储在 var 中并将该 var 与到期日期进行比较。
你的 today_date 格式有问题。
today_date 请给出日期和时间。
由于 expire_date 是文本,您需要对其进行转换。幸运的是,使用 Carbon
,这很容易做到:
$expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);
然后你就可以用它来compare
@if($today_date->gte($expire_date))
您可能需要先确保 $expire_date
不为空并且不会抛出任何错误。如果您将日期作为日期或日期时间列存储在数据库中也会更容易,以确保其始终采用正确的格式,并且您还可以将其作为时间戳添加到模型中,或者将 Carbon 作为 accessor function.
@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
参数是可选的,它表示您希望 return 值是绝对值还是相对值,如果传入的日期是小于当前实例。这将默认为 true,return 绝对值。
您需要首先格式化您的 Cabon 日期对象以匹配来自您的数据库数据的日期(字符串)值。
@if($today_date->format("Y-m-d") >= $entry->expire_date)
它被打印出来是因为你的 PHP 标签是错误的..缺少“?”,应该是 <?PHP
我必须比较 list.blade.php 中的两个日期,例如
if today's date is greater than or equal to expiry date then do something else do something.
代码如下:
@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
Date format: YYYY-MM-DD
但这不起作用。
请帮忙
谢谢
编辑:
我试过这个:
<?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
是我数据库中的文本类型,所以这可能是问题所在。
使用这个 => Carbon::now();
并将您的日期设置为您的格式 (YYYY-MM-DD)。将该日期存储在 var 中并将该 var 与到期日期进行比较。
你的 today_date 格式有问题。
today_date 请给出日期和时间。
由于 expire_date 是文本,您需要对其进行转换。幸运的是,使用 Carbon
,这很容易做到:
$expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);
然后你就可以用它来compare
@if($today_date->gte($expire_date))
您可能需要先确保 $expire_date
不为空并且不会抛出任何错误。如果您将日期作为日期或日期时间列存储在数据库中也会更容易,以确保其始终采用正确的格式,并且您还可以将其作为时间戳添加到模型中,或者将 Carbon 作为 accessor function.
@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
参数是可选的,它表示您希望 return 值是绝对值还是相对值,如果传入的日期是小于当前实例。这将默认为 true,return 绝对值。
您需要首先格式化您的 Cabon 日期对象以匹配来自您的数据库数据的日期(字符串)值。
@if($today_date->format("Y-m-d") >= $entry->expire_date)
它被打印出来是因为你的 PHP 标签是错误的..缺少“?”,应该是 <?PHP