2016-11-24 3 views
2

Итак, у меня есть этот вид в моем контроллере, чтобы показать кнопку, если текущая дата находится между датой начала и датой окончания. Вот то, что я сделал до сих пор:Проверьте, находится ли текущая дата между датой начала и датой окончания (Laravel 5.3)

@if (Carbon\Carbon::now()->format('Y-m-d') < Carbon\Carbon::parse($edition->start)->format('Y-m-d') && Carbon\Carbon::now()->format('Y-m-d') > Carbon\Carbon::parse($edition->end)->format('Y-m-d')) 
    <p></p> 
@else 
    <div class="tombol-nav"> 
     <a href="../journal/create?edition={{$edition->id}}" class="btn btn-primary">Upload Jurnal Anda Sekarang!</a><br> 
     <p style="color: red;">Penting! Batas waktu terakhir pengunggahan Jurnal pada Edisi ini : {{ Carbon\Carbon::parse($edition->limit)->format('j F, Y') }}</p> 
    </div> 
@endif 

Я не знаю, что случилось с ним, кнопка будет отображаться, даже если дата окончания. Спасибо за помощь.

ответ

1

Итак, я, наконец, сделал это с кем-то другим с другого форума, я собираюсь записать его здесь, если кому-то это понадобится.

@if (Carbon\Carbon::now()->between(Carbon\Carbon::parse($edition->start), Carbon\Carbon::parse($edition->limit))) 
    <div class="tombol-nav"> 
     <a href="../journal/create?edition={{$edition->id}}" class="btn btn-primary">Upload Jurnal Anda Sekarang!</a><br> 
     <p style="color: red;">Penting! Batas waktu terakhir pengunggahan Jurnal pada Edisi ini : {{ Carbon\Carbon::parse($edition->limit)->format('j F, Y') }}</p> 
    </div> 
@else 
    <p></p> 
@endif 
0

Используйте этот код в качестве ссылки для проверки даты между двумя датами в laravel с использованием углерода.

$first = Carbon::create(2012, 9, 5, 1); 
$second = Carbon::create(2012, 9, 5, 5); 
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));   // bool(true) 
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second));   // bool(true) 
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false) 

Также читайте подробнее о Carbon здесь: http://carbon.nesbot.com/docs/

0

Если условие не работает в случае объектов.

Carbon \ Carbon :: now() -> format ('Y-m-d') возвращает объект. Вы должны преобразовать его в строку, а затем передать в условии if.

Преобразовать объект углерода в строку: -

$ carbonDateTimeObject = Carbon \ Carbon :: сейчас() -> toDateTimeString();

0

Простой способ иметь дело с сопоставлением дат в отвал является использование углерода-х diffInSeconds()

Для например:

@if(\Carbon\Carbon::now()->diffInSeconds($edition->start, false) > 0) 
    //$edition->start is in the future 
@else 
    //$edition->start is in the past 
@endif 

Смотрите здесь для получения дополнительной информации: http://carbon.nesbot.com/docs/#api-difference

Таким образом, ваш код может быть переписано как

Dependi что вам нужно, вы также можете использовать diffInMinutes() или аналогичные методы.

Смежные вопросы