需要一种方法来限制可用的时间,实际上采取了一个测试与PHP构建为50分钟

tf7tbtn2  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(90)

我有一个60道题的小测验的基本代码。我需要的是一种方法来限制测试者在50分钟内进行测试,之后表单会自动调用下一个文件。奶油在上面将有可用的时间显示在页面上。有什么想法吗?谢谢。

<?php
// Start output buffering.
ob_start();
// Initialize a session.
session_start();
echo '<form action="sampleform.php" onSubmit="return verify()" method="post">';
echo '<p>1. Question</p><ul><li><input type="radio" name="q1" value="A" />&nbsp;<b>A.&nbsp;&nbsp;</b>Answer1</li><li><input type="radio" name="q1" value="B" />&nbsp;<b>B.&nbsp;&nbsp;</b>Answer2</li><li><input type="radio" name="q1" value="C" />&nbsp;<b>C.&nbsp;&nbsp;</b>Answer3</li><li><input type="radio" name="q1" value="D" />&nbsp;<b>D.&nbsp;&nbsp;</b>Answer4</li><li><input type="radio" name="q1" value="?" checked style="display:none;" /></li></ul>';
// Total of 60 questions.
echo '<div align="center"><input type="submit" name="submit" value="Click ONCE when finished." /></div>
<input type="hidden" name="submitted" value="TRUE" /></form>';
<?php // Flush the buffered output.
ob_flush();
?>
1cklez4t

1cklez4t1#

我看到你在评论中提到了js,所以这里是你的问题的答案,但在js(我不做PHP)。
js中有一个叫做Dates的概念,可以用来计算时间。

new Date()

表示代码运行时的日期。
你可以找到两个日期之间的差异。
还有一个概念叫做间隔。您可以将一段代码设置为按一定的时间间隔运行。将这两个概念结合在一起,

let start = new Date() // runs at the start of the test
let interval = setInterval(function(){
//code to run
let now = new Date()
if((Math.abs(start-now)/1000)>=50){
//find difference between times and divide by 1000 to get it in minuits, then compare it to 50

stopInterval(interval) // stops the interval from running
console.log('TIME REACHED')
//do what you need to do here; the time is up

}

}, 1000) // records the fingerprint so we can stop the interval later (Code runs every second or 1000 milliseconds)

相关问题