如何在php中为在线考试创建一个向下计数器,当计数器达到0时,它应该自动完成考试,如果可能的话,我可以使用这些代码吗?请告诉我怎么做。
<!-- Display the countdown timer in an element -->
<p id="demo"></p>
<script>
// Set the date we're counting down to
var countDownDate = new Date("Sep 5, 2018 15:37:25").getTime();
// Update the count down every 1 second
var x = setInterval(function() {
// Get todays date and time
var now = new Date().getTime();
// Find the distance between now an the count down date
var distance = countDownDate - now;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
// If the count down is finished, write some text
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
}, 1000);
</script>发布于 2018-05-25 06:47:31
正如您在注释中提到的,您需要从数据库中获取日期,所以只需将其存储在某个字段中,并将其保存在脚本中即可。
<input type="hidden" id="dateFromDB" value="<?php echo $dateFromDB;?>">我不知道如何从数据库中获取数据,因为您的问题中没有提到任何关于数据库的内容。但我希望你知道怎么做。所以只需将其存储在$dateFromDB中即可。就像这样
var dateDB = document.getElementById("dateFromDB").val();并使用dateDB代替静态日期。
var countDownDate = new Date(dateDB).getTime();发布于 2018-05-25 06:37:36
使用strtotime函数获取日期:
$date = strtotime("Sep 5, 2018 15:37:25");
$remaining = $date - time();然后$remaining是剩馀的秒数。然后,你可以除以这个数字,得到的天数,小时,分钟等。
$daysRemaining = floor($remaining / 86400);
$hoursRemaining = floor(($remaining % 86400) / 3600);要将其放入JavaScript函数,它应该如下所示:
<script>
setInterval(function() {
<?php
/*
It is important that the date field in the database is the proper datatype,
i.e. DATETIME.
The 'date' in this select statement is your date field
The where clause is the condition of a specific selection in your table
You then replace the hardcoded date with the data stored as a php variable
*/
$sql = "SELECT date FROM table WHERE something='something'";
$result = mysql_query($sql);
$dateData = mysql_fetch_array($result)[0];
$date = strtotime("".$dateData."");
$remaining = $date - time();
$daysRemaining = floor($remaining / 86400);
$hoursRemaining = floor(($remaining % 86400) / 3600);
?>
var days = <?php echo $daysRemaining; ?>;
var hours = <?php echo $hoursRemaining; ?>;
<?php
if($remaining <= 0) {
?>
document.getElementById("demo").innerHTML = "EXPIRED";
<?php
}else {
?>
document.getElementById("demo").innerHTML = days + "d " + hours + "h ";
<?php
}
?>
}, 1000);
</script>编辑:
看到需要数据库中的日期后,请参阅编辑的答案。如果您使用mysqli或PDO语法,则更改mysql语法。我建议您使用mysqli_或PDO,如果您还没有使用,因为mysql_是不推荐的。
希望这能有所帮助。
不过有个问题。如果你知道考试时间,有什么能阻止你仅仅使用那一段时间呢?总之,我教你如何从数据库中提取一个日期。
https://stackoverflow.com/questions/50522834
复制相似问题