在 PHP 中实现 Timer 和 Sleep 函数
Implementing Timer in PHP and Sleep function
我正在创建一个 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 会在这方面帮助您...
使用下面的定时器函数
var hours1=0, minutes1=0, seconds1=0;
function 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) {
if (num < 10) { return "0" + num;} return num;
}
谢谢
我正在创建一个 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 会在这方面帮助您...
使用下面的定时器函数
var hours1=0, minutes1=0, seconds1=0;
function 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) {
if (num < 10) { return "0" + num;} return num;
}
谢谢