gpt4 book ai didi

php - 查询数据库中的倒计时器

转载 作者:行者123 更新时间:2023-11-29 23:59:07 24 4
gpt4 key购买 nike

我正在使用 Laravel,我有一个包含两个表的数据库:在第一个表中有一列带有整数字段,我想像计时器一样工作,在第二个表中我在用户提交时存储一个表单,并且有一个带有提交时间的时间戳。我会阻止用户在第一个表中的字段指定的时间到期之前提交相同的表单。我怎样才能做到这一点?

这是 Controller 中的代码:

public function getShow($id = null){
if ( ! is_null($id)){
$submitted = Actionshistory::where('action_id','=',$id)->first()->created_at;
$minutes = Actions::where('id','=',$id)->pluck('time_need'); // time need between submit two same form.
$passed = Carbon::createFromTimeStamp($submitted)->diffInMinutes(Carbon::now('Europe/Rome'));
if ($submitted && $passed >= $minutes)
{
// Other queries and success message
}
// Error message
}
// error message for id
}

我需要使用Carbon::now('Europe/Rome')

谢谢。

最佳答案

创建一个隐藏输入,其中包含表单的服务时间。

Form::hidden('time_served', Carbon::now());

您需要在表单的 onsubmit 事件上使用 ajax 来检查时间是否有效并返回 true 或 false,这将停止或让表单提交继续进行。

JavaScript 看起来像......

$(document).ready(function() {
$('#MyForm').on('submit', function(e) {
$.getJSON('some/route', {}, function(data, textStatus) {
if(data.success) {
return true;
} else {
alert(data.message);
return false;
}
});
});
});

现在,返回 json 的 some/route 路由看起来类似于...

Route::get('some/route', function()
{
$time_served = Input::get('time_served');
$difference = Carbon::createFromTimeStamp($time_served)->diffInSeconds(Carbon::now());
$seconds_allowed = Config::get('timers.seconds'); // However you get your "timer"

if($seconds_allowed > $difference) {
return Response::json(array('success' => true, 'message' => 'Time requirement met.'));
} else {
return Response::json(array('success' => false, 'message' => 'Time requirement not met.'));
}

});

关于php - 查询数据库中的倒计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25167078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com