laravel — Сравнение двух дат в файле blade.php

Я должен сравнить две даты в 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 имеет тип текста в моей базе данных, так что это может быть проблемой.

0

Решение

@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, вернуть абсолютное значение.

Больше здесь

0

Другие решения

Используйте это => Carbon :: now ();

и отформатируйте вашу дату как ваш формат (ГГГГ-ММ-ДД). Сохраните эту дату в var и сравните ее с датой окончания срока действия.

Там проблема в вашем формате today_date.

today_date укажите дату и время.

2

Поскольку expire_date — это текст, вам нужно его преобразовать. К счастью, с Carbonэто легко сделать:

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

Тогда вы можете использовать его для сравнить

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

Вы можете убедиться, что $expire_date не является нулевым и не выдает никаких ошибок в первую очередь. Также было бы проще, если бы вы сохранили свои даты в базе данных как столбец даты или даты и времени, чтобы убедиться, что они всегда в правильном формате, и вы также можете добавить их в качестве метки времени в вашей модели или применить Carbon как функция доступа.

0

Вам необходимо сначала отформатировать объект даты Cabon, чтобы он соответствовал значению даты (строки) из данных вашей БД.

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

Он печатается, потому что ваш PHP-тег неправильный … отсутствует «?», Должно быть <?PHP

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector