如何从开始时间前一小时显示数据并在结束时间一小时后隐藏数据

时间:2019-04-15 19:22:01

标签: php laravel laravel-5.5

我想在Laravel刀片服务器中从开始时间开始1个小时之前显示按钮或链接,而在结束时间1小时之后隐藏。

我正在使用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) && strtotime($eendtime) < strtotime($cendtime))
 <div class="schedule-time-btn">
    <a href="#" target="_blank" class="btn btn-success">Join</a>
 </div>
@endif

2 个答案:

答案 0 :(得分:1)

您应该遵循的几点要点:

  1. 使用Carbon代替php函数。
  2. 加载按钮的最佳选择是AJAX。页面加载时不检查。
  3. 通过检查开始时间和结束时间之间的当前时间,使用AJAX在DOM中添加按钮。
  4. 使用Blad you ajax控制器方法加载按钮
  5. 通过使用Ajax,没有人可以调整按钮的URL,也可以将UUID添加到按钮的URL,这样,如果有人复制您的按钮,则下次不会使用。

答案 1 :(得分:0)

您可以使用Carbon:

@if(Carbon::parse($ctime)->lt(Carbon::parse(ptime)) && 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添加到模型$ dates数组中:

在您的模型中:

$dates = ['schedule_start_at','schedule_end_at'];

然后laravel将自动用碳分析日期。