#php #laravel #laravel-5.5
#php #laravel #laravel-5.5
Вопрос:
Я хочу отобразить кнопку или ссылку до одного часа с момента начала и скрыть через один час с момента окончания в Laravel blade.
Я использую Laravel 5.5.
Я пытаюсь:
$ptime = date('h:i a',strtotime('-1 hour',strtotime($scheduleGroupWorkout->schedule_start_at)));
$ctime = date('h:i a', strtotime($scheduleGroupWorkout->schedule_start_at));
$cendtime = date('h:i a', strtotime($scheduleGroupWorkout->schedule_end_at));
$eendtime = date('h:i a',strtotime(' 1 hour',strtotime($scheduleGroupWorkout->schedule_end_at)));
Лезвие Laravel
@if(strtotime($ctime) < strtotime($ptime) amp;amp; strtotime($eendtime) < strtotime($cendtime))
<div class="schedule-time-btn">
<a href="#" target="_blank" class="btn btn-success">Join</a>
</div>
@endif
Комментарии:
1. Использовать
DateTime
класс2. является ли $scheduleGroupWorkout->schedule_start_at данными из красноречивой модели?
3. Я предлагаю использовать ajax.
Ответ №1:
Несколько пунктов, которые вы должны соблюдать :
- Используйте Carbon вместо функций php.
- Лучший вариант для загрузки кнопки — AJAX. Нет проверки во время загрузки страницы.
- Добавьте кнопку в DOM с помощью AJAX, проверяя текущее время между временем начала и окончания.
- Используйте Blad для вашего метода контроллера ajax для загрузки кнопки
- Используя Ajax, никто не может изменить URL-адрес вашей кнопки, также добавьте UUID в URL-адрес кнопки, чтобы, если кто-нибудь скопирует вашу кнопку, не использовать в следующий раз.
Ответ №2:
Вы можете использовать Carbon:
@if(Carbon::parse($ctime)->lt(Carbon::parse(ptime)) amp;amp; Carbon::parse($eendtime)->lt(Carbon::parse(cendtime)))
<div class="schedule-time-btn">
<a href="#" target="_blank" class="btn btn-success">Join</a>
</div>
@endif
Если вы извлекаете данные из модели, вы можете добавить schedule_start_at в массив models $dates:
в вашей модели :
$dates = ['schedule_start_at','schedule_end_at'];
Затем laravel автоматически проанализирует дату с помощью carbon.
Комментарии:
1. Не думаете ли вы, что в этом случае, если загрузить страницу до 2 часов. Тогда как он будет проверять, должна ли отображаться эта кнопка или нет?
2. Обновленный код: @if(Carbon Carbon::parse($ ctime)-> lt(Carbon Carbon::parse($ ptime)) amp;amp; Carbon Carbon::parse($ eendtime) -> lt( Carbon Carbon::parse($ cendtime))) <div class=»schedule-time-btn»> <a href=»#» target=»_blank» class=»btn btn-success»>Присоединиться</a> </div> @endif