Я должен сравнить две даты в 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);
}
?>
и это дает мне ошибку как:
образ
Еще кое-что expire_date
имеет тип текста в моей базе данных, так что это может быть проблемой.
@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, вернуть абсолютное значение.
Используйте это => Carbon :: now ();
и отформатируйте вашу дату как ваш формат (ГГГГ-ММ-ДД). Сохраните эту дату в var и сравните ее с датой окончания срока действия.
Там проблема в вашем формате today_date.
today_date укажите дату и время.
Поскольку expire_date — это текст, вам нужно его преобразовать. К счастью, с Carbon
это легко сделать:
$expire_date = Carbon::createFromFormat('Y-m-d', $entry->expire_date);
Тогда вы можете использовать его для сравнить
@if($today_date->gte($expire_date))
Вы можете убедиться, что $expire_date
не является нулевым и не выдает никаких ошибок в первую очередь. Также было бы проще, если бы вы сохранили свои даты в базе данных как столбец даты или даты и времени, чтобы убедиться, что они всегда в правильном формате, и вы также можете добавить их в качестве метки времени в вашей модели или применить Carbon как функция доступа.
Вам необходимо сначала отформатировать объект даты Cabon, чтобы он соответствовал значению даты (строки) из данных вашей БД.
@if($today_date->format("Y-m-d") >= $entry->expire_date)
Он печатается, потому что ваш PHP-тег неправильный … отсутствует «?», Должно быть <?PHP