Реализация таймера в PHP и функции сна

Я создаю приложение PHP, в котором я хочу установить таймер 15 минут для определенного раздела теста. Если студент не завершит раздел в течение 15 минут, результаты сохраняются, и студент переходит к следующему разделу.

Поэтому я хочу создать таймер и показать текущее время. Но я не знаю, как реализовать это, а также, если мы будем использовать функцию sleep (), которая будет прерывать работу других функций.

1

Решение

Вы не можете использовать PHP для этого. Если вы это сделаете, то он просто остановит страницу при загрузке страницы на 15 секунд, а затем сообщит, что время студента истекло.

Итак, вы должны написать это в JavaScipt следующим образом:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
currentMinute = 0;
myTimer = setInterval(function () {
if (currentMinute > 15) {
clearInterval(myTimer);
//send post data that the user's time is up
return;
}
$.post("sendData.php", {
"timeIsUp" : true
}, function (data) {
console.log("done sending time has expired to server");
});
currentMinute++;
}, 60 * 1000);
</script>
2

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

JQuery поможет вам в этом …

Используйте функцию ниже для таймера

переменная часов1 = 0, минут1 = 0, секунд1 = 0;

функция Calculate () {

setTimeout(calculate, 1000);
if((hours==0)&&(minutes==0)&&(seconds==0)){$('#submit-btn').trigger('click');} // HERE YOU CAN SWITCH TO NEXT QUESTION
h1 = makeTwoDigit(hours);   m1 = makeTwoDigit(minutes); s1 = makeTwoDigit(seconds);
h2 = makeTwoDigit(hours1);  m2 = makeTwoDigit(minutes1);    s2 = makeTwoDigit(seconds1);
$('title').html(h1+':'+m1+':'+s1);
$('#time-taken').val(h2+':'+m2+':'+s2);
$('#minutes').html(m1);
$('#seconds').html(s1);

seconds--;
if (seconds < 0) {
seconds = 59; minutes--;

if (minutes < 0) {
hours--;
minutes = 59;
}
}
seconds1++;
if (seconds1 > 59) {
seconds1 = 00; minutes1++;
if (minutes1 >59) {
hours1++;
minutes1 = 00;
}
}

}

function makeTwoDigit (num) {

если (число < 10) {return «0» + num;} return num;

}

Спасибо

0

По вопросам рекламы [email protected]