本文目录一览:
php 倒计时
?php
function compDate($Date_1,$Date_2){
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
return $Days;
}
$today=date("Y-m-d H:i:s");
$day="2010-05-01 00:00:00";
$days=compDate($day,$today);
echo $days;
?
php 网络考试系统 的倒计时怎么做?时间到了自动弹出交卷的对话框?
1.用js的setinterval()来设一定倒计时,倒计时的初始值由php分配过来;
2.为了防止别人自己调试js,修改时间,每10秒钟或更小用ajax检测一下服务器,统一次差值,这样就和服务器同步了。
3.在服务器每份试卷或每个人都是唯一的,只要开始启用,到时自动过期,保存存一个“提交失败”。
如果同时答题的人数不是很巨大,直接存session里面,访问量高的话存在数据库里面。
4.当倒计时为0时自动提交到服务器,服务器设一个容错时间,大概1分钟左右,即网络传输过程中超过1分钟就会提交失败。
5.在这考试期间,无论怎么刷新都是那一套题目,提交成功后就不能断续做题;提交失败后重新分配另一套题;重新开始计算时间;
6.避免题目重复,当提交失败3次后,就不能再次做题了。
虽然这样做了,也只能防止菜鸟作弊!
代码自己写。。
求助PHP倒计时程序
php部分,记录下提交订单时的时间戳,并以保存在数据库中;
$postdate = time();
当用户再次执行操作的时候,判断操是否在48小时内的有效操作;
只需要比较,用户操作时的时间戳和提交订单时间是否超过48小时即可;
$operatetime = time();
if( $operate - $postdate 48 ) {
echo "有效";
}else {
echo "无效";
}
根据你的提问,我已经回答完毕;但我觉得你的提问,可能不是想要这个答案;你可能需要的是,在页面上显示跳时,的这种倒计时效果;所以,我在补充一下;你觉得能用,你就用;
1.还是一样,记录提交订单时间戳到数据库 $postdate;
2.当用户再次访问时的时间戳$nowtime = time();
这里可以通过这两个值,可以计算出,离48小时还有多少秒;
$time = 48 * 3600 - ($nowtime - $postdate);
3.把$time传递给js; 采用 var t = ? echo $time ?;
4.写一个显示函数;function showtime;
5.每秒执行一次.
6.大概代码
div id="shower"/div
script type="text/javascript"
var t = ? echo $time ?;
var int =self.setInterval("showtime()",1);
function showtime(){
var hh = t / 3600;
var mm = (t - hh * 3600)/60
var ss = t - hh * 3600 - mm * 60;
var stringhh = hh 10 ? '0'+hh : hh;
var stringmm = mm 10 ? '0'+mm : mm;
var stringss = ss 10 ? '0'+ss : ss;
document.getElementById('shower').innerHTml = stringhh + stringmm + stringss;
t = t -1;
}
/script
php中怎样实现倒计时功能
可以考虑asp实现:
1.HiddenField 控件储存时间
!--2700秒时间--
asp:HiddenField ID="hidTime" runat="server" Value="2700" /
2.js代码
script language="javascript" type="text/javascript"
var time;
var minutes;
var seconds;
var str;
function ShowTime2() {
if(document.getElementById("btnSubmitExam") !=null)
{
time = document.getElementById("hidTime").value;
time = time - 1;
document.getElementById("hidTime").value = time;
minutes = parseInt(time / 60);
seconds = time % 60;
document.getElementById("DjTimeDiv").innerHTML = "剩余时间:" + minutes + "分钟" + seconds + "秒";
if (time == 1) {
document.getElementById("DjTimeDiv").innerHTML="剩余时间:0分钟0秒";
document.getElementById ("btnSubmitExam").click();
// window.close();
}else
{
setTimeout("ShowTime2()", 1000);
}
}else
{
document.getElementById("DjTimeDiv").innerHTML="剩余时间:0分钟0秒";
}
}
/script
php循环倒计时的代码
这个可能要配合子框架和JS的功能来实现.
思路是:
1. 在主框架页面上,安排一个表单 + 一个文本框(设变量名为 end_time),用来设置时间(target 指向子框)(日期格式: 2009-05-28 12:00:00 )
2. 再插入一个对象用来显示剩余时间(可以是文本框,也可以是span标记,还可以是其它可以用JS替换内容的对象就可以了)(假设它的标记是span id="timeout"/span).
3. 在主框架上插入一子框架,子框架的源文件指向php文件
4. 在PHP源文件中插入适当代码.代码的作用主要分几部分,
A.计算剩余时间
B.用于更新主页面的剩余时间对象的JS代码.
C.适当设置页面刷新的时间(用JS或刷页刷新代码)
部分代码:
1.主框架(index.php)
form action="timer.php" method="post" name="form1" target="timerframe" id="form1"
table border="0"
tr
td开始时间
label/label/td
tdinput name="end_time" type="text" id="end_time" value="?php echo date("Y-m-d H:i:s");?" //td
tdlabel
input type="submit" name="Submit" value="提交" /
/label/td
/tr
/table
table width="400" border="0"
tr
td /td
/tr
tr
td离结束还有:span class="STYLE1" id="timeout"aaaaa/span/td
/tr
/table
/form
iframe name="timerframe" width="1" height="1"/iframe
2.子框架(timer.php)
body
?php
$endTime=strtotime($_REQUEST['end_time']); //将终止时间转为nix_timestamp格式
$now=time(); //当前时间
//printf( "N:%s,\nbrE:%s\nbr",$now,$endTime);
if($now=$endTime) //如果时间已过结束时间
{
?
script language="javascript"
var f=parent.document.getElementById("form1")
f.end_time.value='?php echo date("Y-m-d H:i:s",$endTime+2*3600);?'
f.submit()
/script
?php
exit;
}
$timeLeft=$endTime-$now; //计算剩余的秒数,并转换为对应的 时:分:秒 的格式
?
script language="javascript"
parent.document.getElementById("timeout").innerHTML='?php echo date("H:i:s",$timeLeft-8*3600);?'
function refresh()
{
var f=parent.document.getElementById("form1")
f.submit();
}
setTimeout("refresh()",5000)
/script
/body