Я создаю приложение PHP, в котором я хочу установить таймер 15 минут для определенного раздела теста. Если студент не завершит раздел в течение 15 минут, результаты сохраняются, и студент переходит к следующему разделу.
Поэтому я хочу создать таймер и показать текущее время. Но я не знаю, как реализовать это, а также, если мы будем использовать функцию sleep (), которая будет прерывать работу других функций.
Вы не можете использовать 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>
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;
}
Спасибо